Interface ConstraintValidator<A extends Annotation,T>

Type Parameters:
A - the annotation type handled by an implementation
T - the target type supported by an implementation
All Known Subinterfaces:
HibernateConstraintValidator<A,T>
All Known Implementing Classes:
AbstractDecimalMaxValidator, AbstractDecimalMinValidator, AbstractEmailValidator, AbstractEpochBasedTimeValidator, AbstractFutureEpochBasedValidator, AbstractFutureInstantBasedValidator, AbstractFutureJavaTimeValidator, AbstractFutureOrPresentEpochBasedValidator, AbstractFutureOrPresentInstantBasedValidator, AbstractFutureOrPresentJavaTimeValidator, AbstractInstantBasedTimeValidator, AbstractJavaTimeValidator, AbstractMaxValidator, AbstractMinValidator, AbstractPastEpochBasedValidator, AbstractPastInstantBasedValidator, AbstractPastJavaTimeValidator, AbstractPastOrPresentEpochBasedValidator, AbstractPastOrPresentInstantBasedValidator, AbstractPastOrPresentJavaTimeValidator, AbstractScriptAssertValidator, AssertFalseValidator, AssertTrueValidator, CNPJValidator, CodePointLengthValidator, CPFValidator, CurrencyValidatorForMonetaryAmount, DecimalMaxValidatorForBigDecimal, DecimalMaxValidatorForBigInteger, DecimalMaxValidatorForByte, DecimalMaxValidatorForCharSequence, DecimalMaxValidatorForDouble, DecimalMaxValidatorForFloat, DecimalMaxValidatorForInteger, DecimalMaxValidatorForLong, DecimalMaxValidatorForMonetaryAmount, DecimalMaxValidatorForNumber, DecimalMaxValidatorForShort, DecimalMinValidatorForBigDecimal, DecimalMinValidatorForBigInteger, DecimalMinValidatorForByte, DecimalMinValidatorForCharSequence, DecimalMinValidatorForDouble, DecimalMinValidatorForFloat, DecimalMinValidatorForInteger, DecimalMinValidatorForLong, DecimalMinValidatorForMonetaryAmount, DecimalMinValidatorForNumber, DecimalMinValidatorForShort, DigitsValidatorForCharSequence, DigitsValidatorForMonetaryAmount, DigitsValidatorForNumber, DurationMaxValidator, DurationMinValidator, EANValidator, EmailValidator, EmailValidator, FutureOrPresentValidatorForCalendar, FutureOrPresentValidatorForDate, FutureOrPresentValidatorForHijrahDate, FutureOrPresentValidatorForInstant, FutureOrPresentValidatorForJapaneseDate, FutureOrPresentValidatorForLocalDate, FutureOrPresentValidatorForLocalDateTime, FutureOrPresentValidatorForLocalTime, FutureOrPresentValidatorForMinguoDate, FutureOrPresentValidatorForMonthDay, FutureOrPresentValidatorForOffsetDateTime, FutureOrPresentValidatorForOffsetTime, FutureOrPresentValidatorForReadableInstant, FutureOrPresentValidatorForReadablePartial, FutureOrPresentValidatorForThaiBuddhistDate, FutureOrPresentValidatorForYear, FutureOrPresentValidatorForYearMonth, FutureOrPresentValidatorForZonedDateTime, FutureValidatorForCalendar, FutureValidatorForDate, FutureValidatorForHijrahDate, FutureValidatorForInstant, FutureValidatorForJapaneseDate, FutureValidatorForLocalDate, FutureValidatorForLocalDateTime, FutureValidatorForLocalTime, FutureValidatorForMinguoDate, FutureValidatorForMonthDay, FutureValidatorForOffsetDateTime, FutureValidatorForOffsetTime, FutureValidatorForReadableInstant, FutureValidatorForReadablePartial, FutureValidatorForThaiBuddhistDate, FutureValidatorForYear, FutureValidatorForYearMonth, FutureValidatorForZonedDateTime, INNValidator, ISBNValidator, LengthValidator, LuhnCheckValidator, MaxValidatorForBigDecimal, MaxValidatorForBigInteger, MaxValidatorForByte, MaxValidatorForCharSequence, MaxValidatorForDouble, MaxValidatorForFloat, MaxValidatorForInteger, MaxValidatorForLong, MaxValidatorForMonetaryAmount, MaxValidatorForNumber, MaxValidatorForShort, MinValidatorForBigDecimal, MinValidatorForBigInteger, MinValidatorForByte, MinValidatorForCharSequence, MinValidatorForDouble, MinValidatorForFloat, MinValidatorForInteger, MinValidatorForLong, MinValidatorForMonetaryAmount, MinValidatorForNumber, MinValidatorForShort, Mod10CheckValidator, Mod11CheckValidator, ModCheckValidator, NegativeOrZeroValidatorForBigDecimal, NegativeOrZeroValidatorForBigInteger, NegativeOrZeroValidatorForByte, NegativeOrZeroValidatorForCharSequence, NegativeOrZeroValidatorForDouble, NegativeOrZeroValidatorForFloat, NegativeOrZeroValidatorForInteger, NegativeOrZeroValidatorForLong, NegativeOrZeroValidatorForMonetaryAmount, NegativeOrZeroValidatorForNumber, NegativeOrZeroValidatorForShort, NegativeValidatorForBigDecimal, NegativeValidatorForBigInteger, NegativeValidatorForByte, NegativeValidatorForCharSequence, NegativeValidatorForDouble, NegativeValidatorForFloat, NegativeValidatorForInteger, NegativeValidatorForLong, NegativeValidatorForMonetaryAmount, NegativeValidatorForNumber, NegativeValidatorForShort, NIPValidator, NormalizedValidator, NotBlankValidator, NotBlankValidator, NotEmptyValidatorForArray, NotEmptyValidatorForArraysOfBoolean, NotEmptyValidatorForArraysOfByte, NotEmptyValidatorForArraysOfChar, NotEmptyValidatorForArraysOfDouble, NotEmptyValidatorForArraysOfFloat, NotEmptyValidatorForArraysOfInt, NotEmptyValidatorForArraysOfLong, NotEmptyValidatorForArraysOfShort, NotEmptyValidatorForCharSequence, NotEmptyValidatorForCollection, NotEmptyValidatorForMap, NotNullValidator, NullValidator, ParameterScriptAssertValidator, PastOrPresentValidatorForCalendar, PastOrPresentValidatorForDate, PastOrPresentValidatorForHijrahDate, PastOrPresentValidatorForInstant, PastOrPresentValidatorForJapaneseDate, PastOrPresentValidatorForLocalDate, PastOrPresentValidatorForLocalDateTime, PastOrPresentValidatorForLocalTime, PastOrPresentValidatorForMinguoDate, PastOrPresentValidatorForMonthDay, PastOrPresentValidatorForOffsetDateTime, PastOrPresentValidatorForOffsetTime, PastOrPresentValidatorForReadableInstant, PastOrPresentValidatorForReadablePartial, PastOrPresentValidatorForThaiBuddhistDate, PastOrPresentValidatorForYear, PastOrPresentValidatorForYearMonth, PastOrPresentValidatorForZonedDateTime, PastValidatorForCalendar, PastValidatorForDate, PastValidatorForHijrahDate, PastValidatorForInstant, PastValidatorForJapaneseDate, PastValidatorForLocalDate, PastValidatorForLocalDateTime, PastValidatorForLocalTime, PastValidatorForMinguoDate, PastValidatorForMonthDay, PastValidatorForOffsetDateTime, PastValidatorForOffsetTime, PastValidatorForReadableInstant, PastValidatorForReadablePartial, PastValidatorForThaiBuddhistDate, PastValidatorForYear, PastValidatorForYearMonth, PastValidatorForZonedDateTime, PatternValidator, PESELValidator, PolishNumberValidator, PositiveOrZeroValidatorForBigDecimal, PositiveOrZeroValidatorForBigInteger, PositiveOrZeroValidatorForByte, PositiveOrZeroValidatorForCharSequence, PositiveOrZeroValidatorForDouble, PositiveOrZeroValidatorForFloat, PositiveOrZeroValidatorForInteger, PositiveOrZeroValidatorForLong, PositiveOrZeroValidatorForMonetaryAmount, PositiveOrZeroValidatorForNumber, PositiveOrZeroValidatorForShort, PositiveValidatorForBigDecimal, PositiveValidatorForBigInteger, PositiveValidatorForByte, PositiveValidatorForCharSequence, PositiveValidatorForDouble, PositiveValidatorForFloat, PositiveValidatorForInteger, PositiveValidatorForLong, PositiveValidatorForMonetaryAmount, PositiveValidatorForNumber, PositiveValidatorForShort, RegexpURLValidator, REGONValidator, ScriptAssertValidator, SizeValidatorForArray, SizeValidatorForArraysOfBoolean, SizeValidatorForArraysOfByte, SizeValidatorForArraysOfChar, SizeValidatorForArraysOfDouble, SizeValidatorForArraysOfFloat, SizeValidatorForArraysOfInt, SizeValidatorForArraysOfLong, SizeValidatorForArraysOfShort, SizeValidatorForCharSequence, SizeValidatorForCollection, SizeValidatorForMap, UniqueElementsValidator, URLValidator, UUIDValidator

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