@Documented @Target(value=ANNOTATION_TYPE) @Retention(value=RUNTIME) public @interface Constraint
@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 purposesvalidationAppliesTo()
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
ConstraintValidator
s 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 }) @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 must reference distinct target types
for a given ValidationTarget
If two ConstraintValidator s refer to the same type,
an exception will occur. |
public abstract Class<? extends ConstraintValidator<?,?>>[] validatedBy
ConstraintValidator
classes must reference distinct target types
for a given ValidationTarget
If two ConstraintValidator
s 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.Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.