Метод | Описание |
---|---|
Валидирует все ограничения, применяемые с объектом | |
Валидирует все ограничения, касающиеся свойства | |
Валидирует все ограничения, применяемые к свойству при заданном значении | |
BeanDescriptor getConstraintsForClass(Class > clazz) | Возвращает объект дескриптора, описывающий ограничения компонента |
ExecutableValidator forExecutables() | Возвращает делегат для валидации параметров и возвращаемых значений у методов и конструкторов |
Если в ходе этой процедуры валидации происходит какая-либо неисправимая ошибка, то выдается исключение ValidationException. Это исключение может быть специализированным и может указывать на конкретные ситуации (недопустимое определение группы, недопустимое определение ограничения, недопустимое объявление ограничения).
Методы validate, validateProperty и validateValue используются соответственно для валидации целого компонента, свойства или свойства при заданном значении. Все методы принимают параметр varargs, позволяющий указывать группы для валидации. Метод forExecutables предоставляет доступ к ExecutableValidator для валидации методов, параметров конструктора и валидации возвращаемого значения. В табл. 3.5 описан API ExecutableValidator.
Метод | Описание |
---|---|
Валидирует все ограничения, применяемые с параметрами метода | |
method, Object[] params, Class >… groups) | |
Валидирует все ограничения возвращаемого значения, применяемые с методом | |
Валидирует все ограничения, связанные с параметрами конструктора | |
Валидирует все ограничения возвращаемых значений, связанные с конструктором |
Все валидационные методы, перечисленные в табл. 3.4 и 3.5, возвращают множество ConstraintViolation, которое можно перебирать и при этом просматривать, какие ошибки возникли при валидации. Если это множество пустое — значит, валидация прошла успешно. При ошибках в это множество добавляется по экземпляру ConstraintViolation для каждого нарушенного ограничения. ConstraintViolation описывает единую ошибку, связанную с ограничением, а его API дает множество полезной информации о причине ошибки. В табл. 3.6 сделан обзор этого API.