package ru.hflabs.rcd.service; import org.springframework.validation.Errors; import ru.hflabs.rcd.exception.ApplicationValidationException; /** * Интерфейс <class>IValidateService</class> декларирует методы сервиса валидации консистентности объекта * * @see org.springframework.validation.Validator * @see @see <a href="http://jcp.org/en/jsr/detail?id=303">JSR-303</a> */ public interface IValidateService<T> extends ISingleClassObserver<T> { /** * Выполняет валидацию объекта с накапливанием ошибок в {@link Errors контейнере} * * @param object валидируемый объект * @return Возвращает контейнер ошибок валидации * @see #validate(Object) */ Errors checkErrors(T object); /** * Выполняет валидацию объекта * * @param object валидируемый объект * @return Возвращает модифицированный объект, прошедший валидацию * @throws ApplicationValidationException Исключительная ситуация при валидации объекта */ T validate(T object) throws ApplicationValidationException; }