@Documented @Target(value=ANNOTATION_TYPE) @Retention(value=RUNTIME) public @interface Constraint
 A given constraint annotation must be annotated by a @Constraint
 annotation which refers to its list of constraint validation implementations.
 
Each constraint annotation must host the following attributes:
String message() default [...]; which should default to an error
     message key made of the fully-qualified class name of the constraint followed by
     .message. For example "{com.acme.constraints.NotSafe.message}"Class<?>[] groups() default {}; for user to customize the targeted
     groupsClass<? extends Payload>[] payload() default {}; for
     extensibility purposes
 When building a constraint that is both generic and cross-parameter, the constraint
 annotation must host the validationAppliesTo() property.
 A constraint is generic if it targets the annotated element and is cross-parameter if
 it targets the array of parameters of a method or constructor.
 
     ConstraintTarget validationAppliesTo() default ConstraintTarget.IMPLICIT;
 
 This property allows the constraint user to choose whether the constraint
 targets the return type of the executable or its array of parameters.
 A constraint is both generic and cross-parameter if
 ConstraintValidators are attached to the
     constraint, one targeting ValidationTarget.ANNOTATED_ELEMENT
     and one targeting ValidationTarget.PARAMETERS,ConstraintValidator targets both
     ANNOTATED_ELEMENT and PARAMETERS.SupportedValidationTarget for more info.
 Here is an example of constraint definition:
 @Documented
 @Constraint(validatedBy = OrderNumberValidator.class)
 @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 public @interface OrderNumber {
     String message() default "{com.acme.constraint.OrderNumber.message}";
     Class<?>[] groups() default {};
     Class<? extends Payload>[] payload() default {};
 }
 | Modifier and Type | Required Element and Description | 
|---|---|
Class<? extends ConstraintValidator<?,?>>[] | 
validatedBy
ConstraintValidator classes implementing the constraint. | 
public abstract Class<? extends ConstraintValidator<?,?>>[] validatedBy
ConstraintValidator classes implementing the constraint. The given classes
 must reference distinct target types for a given ValidationTarget. If two
 ConstraintValidators refer to the same type, an exception will occur.
 
 At most one ConstraintValidator targeting the array of parameters of
 methods or constructors (aka cross-parameter) is accepted. If two or more
 are present, an exception will occur.
ConstraintValidator classes implementing the constraintCopyright © 2019 Eclipse Foundation.
Use is subject to license terms.