argos/dmp-backend/web/src/main/java/eu/eudat/models/validators/fluentvalidator/FluentValidator.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;
}
}