Skip to content

Commit 8f3f7fb

Browse files
committed
Append parent elements to child fields
1 parent a6af34b commit 8f3f7fb

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed

src/main/java/dev/ditsche/validator/Validator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public <T> T validate(T object, boolean abortEarly) {
9797
Field field = fieldSet.stream().filter(f -> f.getName().equals(validatable.getField())).findFirst().orElse(null);
9898
if(field == null) continue;
9999
Object value = FieldUtils.readField(field, object, true);
100-
ValidationResult result = validatable.validate(value, abortEarly);
100+
ValidationResult result = validatable.validate("", value, abortEarly);
101101
if(result.isChanged())
102102
FieldUtils.writeField(field, object, result.getValue(), true);
103103
errorBag.merge(result.getErrorBag());

src/main/java/dev/ditsche/validator/validation/Validatable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ public interface Validatable {
44

55
String getField();
66

7-
ValidationResult validate(Object object, boolean abortEarly);
7+
ValidationResult validate(String parent, Object object, boolean abortEarly);
88

99
}

src/main/java/dev/ditsche/validator/validation/ValidationField.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ public void addRule(Rule rule) {
7474
}
7575

7676
@Override
77-
public ValidationResult validate(Object object, boolean abortEarly) {
77+
public ValidationResult validate(String parent, Object object, boolean abortEarly) {
7878
ErrorBag errorBag = new ErrorBag();
7979
boolean changed = false;
8080
for(Rule rule : rules) {
8181
RuleResult ruleResult = rule.passes(object);
8282
if(!ruleResult.isPassed()) {
83-
errorBag.add(field, rule.message(field));
83+
errorBag.add(parent + field, rule.message(field));
8484
if(abortEarly)
8585
throw new ValidationException(errorBag);
8686
} else if(ruleResult.isChanged()) {

src/main/java/dev/ditsche/validator/validation/ValidationObject.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public ValidationObject(String field, List<Validatable> children) {
2727
}
2828

2929
@Override
30-
public ValidationResult validate(Object object, boolean abortEarly) {
30+
public ValidationResult validate(String parent, Object object, boolean abortEarly) {
3131
ErrorBag errorBag = new ErrorBag();
3232
boolean changed = false;
3333
List<Field> fieldSet = new ArrayList<>();
@@ -40,7 +40,7 @@ public ValidationResult validate(Object object, boolean abortEarly) {
4040
if(field == null) continue;
4141
try {
4242
Object value = FieldUtils.readField(field, object, true);
43-
ValidationResult validationResult = validatable.validate(value, abortEarly);
43+
ValidationResult validationResult = validatable.validate(this.field + ".", value, abortEarly);
4444
errorBag.merge(validationResult.getErrorBag());
4545
if(validationResult.isChanged())
4646
FieldUtils.writeField(field, object, validationResult.getValue(), true);

0 commit comments

Comments
 (0)