|
|
|
|
@ -190,6 +190,8 @@ class ValueObjectBinder implements DataObjectBinder {
@@ -190,6 +190,8 @@ class ValueObjectBinder implements DataObjectBinder {
|
|
|
|
|
*/ |
|
|
|
|
private static final class KotlinValueObject<T> extends ValueObject<T> { |
|
|
|
|
|
|
|
|
|
private static final Annotation[] ANNOTATION_ARRAY = new Annotation[0]; |
|
|
|
|
|
|
|
|
|
private final List<ConstructorParameter> constructorParameters; |
|
|
|
|
|
|
|
|
|
private KotlinValueObject(Constructor<T> primaryConstructor, KFunction<T> kotlinConstructor, |
|
|
|
|
@ -206,15 +208,15 @@ class ValueObjectBinder implements DataObjectBinder {
@@ -206,15 +208,15 @@ class ValueObjectBinder implements DataObjectBinder {
|
|
|
|
|
String name = getParameterName(parameter); |
|
|
|
|
ResolvableType parameterType = ResolvableType |
|
|
|
|
.forType(ReflectJvmMapping.getJavaType(parameter.getType()), type); |
|
|
|
|
Annotation[] annotations = parameter.getAnnotations().toArray(new Annotation[0]); |
|
|
|
|
Annotation[] annotations = parameter.getAnnotations().toArray(ANNOTATION_ARRAY); |
|
|
|
|
result.add(new ConstructorParameter(name, parameterType, annotations)); |
|
|
|
|
} |
|
|
|
|
return Collections.unmodifiableList(result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String getParameterName(KParameter parameter) { |
|
|
|
|
return parameter.getAnnotations().stream().filter(Name.class::isInstance).findFirst().map(Name.class::cast) |
|
|
|
|
.map(Name::value).orElse(parameter.getName()); |
|
|
|
|
return MergedAnnotations.from(parameter, parameter.getAnnotations().toArray(ANNOTATION_ARRAY)) |
|
|
|
|
.get(Name.class).getValue(MergedAnnotation.VALUE, String.class).orElseGet(parameter::getName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|