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 (jakarta.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
    Description
    BeanValidator(Class<?> beanType, String propertyName)
    Creates a new JSR-303 BeanValidator that validates values of the specified property.
  • Method Summary

    Modifier and Type
    Method
    Description
    apply(Object value, ValueContext context)
    Validates the given value as if it were the value of the bean property configured for this validator.
    protected jakarta.validation.MessageInterpolator.Context
    createContext(jakarta.validation.ConstraintViolation<?> violation)
    Creates a simple message interpolation context based on the given constraint violation.
    jakarta.validation.Validator
    Returns a shared JSR-303 validator instance to use.
    protected static jakarta.validation.ValidatorFactory
    Returns the underlying JSR-303 bean validator factory used.
    protected String
    getMessage(jakarta.validation.ConstraintViolation<?> violation, Locale locale)
    Returns the interpolated error message for the given constraint violation using the locale specified for this validator.
     

    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 Details

    • 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 null
      propertyName - the property to validate, not null
      Throws:
      IllegalStateException - if BeanUtil.checkBeanValidationAvailable() returns false
  • Method Details

    • 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, 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 BiFunction<Object,ValueContext,ValidationResult>
      Specified by:
      apply in interface Validator<Object>
      Parameters:
      value - the input value to validate
      context - the value context for validation
      Returns:
      the validation result
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getJavaxBeanValidatorFactory

      protected static jakarta.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 jakarta.validation.Validator getJavaxBeanValidator()
      Returns a shared JSR-303 validator instance to use.
      Returns:
      the validator to use
    • getMessage

      protected String getMessage(jakarta.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 violation
      locale - the used locale
      Returns:
      the localized error message
    • createContext

      protected jakarta.validation.MessageInterpolator.Context createContext(jakarta.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