29 lines
679 B
Java
29 lines
679 B
Java
package eu.eudat.models.validators.fluentvalidator;
|
|
|
|
import eu.eudat.models.validators.fluentvalidator.predicates.FieldSelector;
|
|
import org.springframework.validation.Errors;
|
|
import org.springframework.validation.Validator;
|
|
|
|
/**
|
|
* Created by ikalyvas on 8/28/2018.
|
|
*/
|
|
public class FluentValidator<T> implements Validator {
|
|
|
|
private T item;
|
|
|
|
public <R> void ruleFor(FieldSelector<T, R> selector) {
|
|
selector.apply(this.item);
|
|
}
|
|
|
|
@Override
|
|
public boolean supports(Class<?> clazz) {
|
|
return this.item.getClass().equals(clazz);
|
|
}
|
|
|
|
@Override
|
|
public void validate(Object target, Errors errors) {
|
|
this.item = (T) target;
|
|
|
|
}
|
|
}
|