Class BeanValidator

  • All Implemented Interfaces:
    Validator<java.lang.Object>, java.io.Serializable, java.util.function.BiFunction<java.lang.Object,​ValueContext,​ValidationResult>

    public class BeanValidator
    extends java.lang.Object
    implements Validator<java.lang.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:
    8.0
    Author:
    Vaadin Ltd.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      BeanValidator​(java.lang.Class<?> beanType, java.lang.String propertyName)
      Creates a new JSR-303 BeanValidator that validates values of the specified property.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      ValidationResult apply​(java.lang.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 java.lang.String getMessage​(javax.validation.ConstraintViolation<?> violation, java.util.Locale locale)
      Returns the interpolated error message for the given constraint violation using the locale specified for this validator.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.function.BiFunction

        andThen
    • Constructor Detail

      • BeanValidator

        public BeanValidator​(java.lang.Class<?> beanType,
                             java.lang.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 null
        propertyName - the property to validate, not null
        Throws:
        java.lang.IllegalStateException - if BeanUtil.checkBeanValidationAvailable() returns false
    • Method Detail

      • apply

        public ValidationResult apply​(java.lang.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, a Result.error of chained constraint violation messages otherwise.

        Null values are accepted unless the property has an @NotNull annotation or equivalent.

        Specified by:
        apply in interface java.util.function.BiFunction<java.lang.Object,​ValueContext,​ValidationResult>
        Specified by:
        apply in interface Validator<java.lang.Object>
        Parameters:
        value - the input value to validate
        context - the value context for validation
        Returns:
        the validation result
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • 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 java.lang.String getMessage​(javax.validation.ConstraintViolation<?> violation,
                                              java.util.Locale locale)
        Returns the interpolated error message for the given constraint violation using the locale specified for this validator.
        Parameters:
        violation - the constraint violation
        locale - the used locale
        Returns:
        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 violation
        Returns:
        the message interpolation context