Interface ConstraintValidator<A extends Annotation,T>

Type Parameters:
A - the annotation type handled by an implementation
T - the target type supported by an implementation

public interface ConstraintValidator<A extends Annotation,T>
Defines the logic to validate a given constraint A for a given object type T.

Implementations must comply to the following restriction:

  • T must resolve to a non parameterized type
  • or generic parameters of T must be unbounded wildcard types

The annotation SupportedValidationTarget can be put on a ConstraintValidator implementation to mark it as supporting cross-parameter constraints. Check out SupportedValidationTarget and Constraint for more information.

Author:
Emmanuel Bernard, Hardy Ferentschik
  • Method Details

    • initialize

      default void initialize(A constraintAnnotation)
      Initializes the validator in preparation for isValid(Object, ConstraintValidatorContext) calls. The constraint annotation for a given constraint declaration is passed.

      This method is guaranteed to be called before any use of this instance for validation.

      The default implementation is a no-op.

      Parameters:
      constraintAnnotation - annotation instance for a given constraint declaration
    • isValid

      boolean isValid(T value, ConstraintValidatorContext context)
      Implements the validation logic. The state of value must not be altered.

      This method can be accessed concurrently, thread-safety must be ensured by the implementation.

      Parameters:
      value - object to validate
      context - context in which the constraint is evaluated
      Returns:
      false if value does not pass the constraint