Skip to content

Commit e908f3b

Browse files
authored
Validation factory parameter order (#208)
1 parent c166334 commit e908f3b

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

validation/validation-annotation-processor/src/main/java/ru/tinkoff/kora/validation/annotation/processor/ValidUtils.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,23 @@ public static List<ValidMeta.Constraint> getValidatedByConstraints(ProcessingEnv
2222
.filter(ft -> ft instanceof DeclaredType)
2323
.map(factoryType -> {
2424
final DeclaredType factoryRawType = (DeclaredType) factoryType;
25-
final Map<String, Object> parameters = env.getElementUtils().getElementValuesWithDefaults(annotation).entrySet().stream()
25+
final Map<String, Object> parametersWithDefaults = env.getElementUtils().getElementValuesWithDefaults(annotation).entrySet().stream()
2626
.collect(Collectors.toMap(
2727
ae -> ae.getKey().getSimpleName().toString(),
2828
ae -> castParameterValue(ae.getValue()),
2929
(v1, v2) -> v2,
3030
LinkedHashMap::new
3131
));
3232

33+
final Map<String, Object> parameters = new LinkedHashMap<>();
34+
for (Element parameter : annotation.getAnnotationType().asElement().getEnclosedElements()) {
35+
if (parameter instanceof ExecutableElement ep) {
36+
final String parameterName = ep.getSimpleName().toString();
37+
final Object parameterValue = parametersWithDefaults.get(parameterName);
38+
parameters.put(parameterName, parameterValue);
39+
}
40+
}
41+
3342
if (parameters.size() > 0) {
3443
factoryRawType.asElement().getEnclosedElements()
3544
.stream()

validation/validation-annotation-processor/src/test/java/ru/tinkoff/kora/validation/annotation/processor/ValidRunner.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ protected Validator<ValidBar> getBarValidator() {
3838
return (Validator<ValidBar>) clazz.getConstructors()[0].newInstance(
3939
sizeListConstraintFactory(TypeRef.of(Integer.class)),
4040
notBlankStringConstraintFactory(),
41+
sizeStringConstraintFactory(),
4142
listValidator(getTazValidator(), TypeRef.of(ValidTaz.class)));
4243
} catch (RuntimeException e) {
4344
throw e;

validation/validation-annotation-processor/src/test/java/ru/tinkoff/kora/validation/annotation/processor/testdata/ValidBar.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ public class ValidBar {
1414

1515
@Nullable
1616
@NotBlank
17+
@Size(max = 50)
1718
private String id;
18-
@Size(min = 1, max = 5)
19+
@Size(max = 5, min = 1)
1920
private List<Integer> codes;
2021
@Valid
2122
private List<ValidTaz> tazs;

0 commit comments

Comments
 (0)