Interface ConstraintValidator<A extends java.lang.annotation.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 java.lang.annotation.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.

    • Method Detail

      • 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