com.vaadin.flow.data.validator.
Class BeanValidator
- java.lang.Object
-
- com.vaadin.flow.data.validator.BeanValidator
-
All Implemented Interfaces:
Validator<Object>, Serializable, BiFunction<Object,ValueContext,ValidationResult>
public class BeanValidator extends Object implements Validator<Object>
A
Validator
using the JSR-303 (javax.validation) annotation-based bean validation mechanism. Values passed to this validator are compared against the constraints, if any, specified by annotations on the corresponding bean property.Note that a JSR-303 implementation (for instance Hibernate Validator or Apache BVal) must be present on the project classpath when using bean validation. Specification versions 1.0 and 1.1 are supported.
Since:
1.0.
Author:
Vaadin Ltd
See Also:
-
-
Constructor Summary
Constructors Constructor and Description BeanValidator(Class<?> beanType, String propertyName)
Creates a new JSR-303
BeanValidator
that validates values of the specified property.
-
Method Summary
All Methods Modifier and Type Method and Description ValidationResult
apply(Object value, ValueContext context)
Validates the given value as if it were the value of the bean property configured for this validator.
protected javax.validation.MessageInterpolator.Context
createContext(javax.validation.ConstraintViolation<?> violation)
Creates a simple message interpolation context based on the given constraint violation.
javax.validation.Validator
getJavaxBeanValidator()
Returns a shared JSR-303 validator instance to use.
protected static javax.validation.ValidatorFactory
getJavaxBeanValidatorFactory()
Returns the underlying JSR-303 bean validator factory used.
protected String
getMessage(javax.validation.ConstraintViolation<?> violation, Locale locale)
Returns the interpolated error message for the given constraint violation using the locale specified for this validator.
String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.vaadin.flow.data.binder.Validator
alwaysPass, from, from, from, from
-
Methods inherited from interface java.util.function.BiFunction
andThen
-
-
-
-
Constructor Detail
-
BeanValidator
public BeanValidator(Class<?> beanType, String propertyName)
Creates a new JSR-303
BeanValidator
that validates values of the specified property. Localizes validation messages using the default locale.Parameters:
beanType
- the bean type declaring the property, not nullpropertyName
- the property to validate, not nullThrows:
IllegalStateException
- ifBeanUtil.checkBeanValidationAvailable()
returns false
-
-
Method Detail
-
apply
public ValidationResult apply(Object value, ValueContext context)
Validates the given value as if it were the value of the bean property configured for this validator. Returns
Result.ok
if there are no JSR-303 constraint violations, aResult.error
of chained constraint violation messages otherwise.Null values are accepted unless the property has an
@NotNull
annotation or equivalent.Specified by:
apply
in interfaceValidator<Object>
Specified by:
apply
in interfaceBiFunction<Object,ValueContext,ValidationResult>
Parameters:
value
- the input value to validatecontext
- the value context for validationReturns:
the validation result
-
getJavaxBeanValidatorFactory
protected static javax.validation.ValidatorFactory getJavaxBeanValidatorFactory()
Returns the underlying JSR-303 bean validator factory used. A factory is created using
Validation
if necessary.Returns:
the validator factory to use
-
getJavaxBeanValidator
public javax.validation.Validator getJavaxBeanValidator()
Returns a shared JSR-303 validator instance to use.
Returns:
the validator to use
-
getMessage
protected String getMessage(javax.validation.ConstraintViolation<?> violation, Locale locale)
Returns the interpolated error message for the given constraint violation using the locale specified for this validator.
Parameters:
violation
- the constraint violationlocale
- the used localeReturns:
the localized error message
-
createContext
protected javax.validation.MessageInterpolator.Context createContext(javax.validation.ConstraintViolation<?> violation)
Creates a simple message interpolation context based on the given constraint violation.
Parameters:
violation
- the constraint violationReturns:
the message interpolation context
-
-