All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.fhframework.validation.ValidationManager Maven / Gradle / Ivy

package pl.fhframework.validation;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Manager to support validation
 * 

* Created by Krzysztof Noga on 2016-12-14. * * @param */ public class ValidationManager { private final boolean stopOnFirstHandlerException; private List> validators = new ArrayList<>(); /** * The default constructor. Validation is to stop on the first violation */ public ValidationManager() { this.stopOnFirstHandlerException = true; } /** * @param stopOnFirstHandlerException - true if validation is to stop on the first violation. default true */ public ValidationManager(boolean stopOnFirstHandlerException) { this.stopOnFirstHandlerException = stopOnFirstHandlerException; } private void validate(final T value, final Iterator> iterator, final List> violationsToReturn) { if (iterator.hasNext()) { Validator validator = iterator.next(); List> violations = validator.validate(value); checkViolations(violations, value, iterator, violationsToReturn); } } private void checkViolations(final List> violations, final T value, final Iterator> iterator, final List> violationsToReturn) { if (violations != null && violations.size() > 0) { violationsToReturn.addAll(violations); /* * validation error */ if (stopOnFirstHandlerException) { return; } else { validate(value, iterator, violationsToReturn); } } else { /* * validation ok */ validate(value, iterator, violationsToReturn); } } /** * Adds validator to the list * * @param validator * @return return ValidationManager */ public ValidationManager addValidator(Validator validator) { validators.add(validator); return this; } /** * Validates the specified value. * The value is checked by all validators, * or interrupted for the first violation when stopOnFirstHandlerException=true * * @param value - value to validation * @return list of violations. If size > 0, the validation does not successfully */ public List> validate(T value) { final Iterator> iterator = validators.iterator(); List> violationsToReturn = new ArrayList<>(); validate(value, iterator, violationsToReturn); return violationsToReturn; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy