JavaScript is disabled on your browser.
Skip navigation links
javax.validation

Annotation Type Constraint



  • @Documented
     @Target(value=ANNOTATION_TYPE)
     @Retention(value=RUNTIME)
    public @interface Constraint
    Marks an annotation as being a Bean Validation 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 groups
    • Class<? 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 Such dual constraints are rare. See 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[] payload() default {};
     }
     
    Author:
    Emmanuel Bernard, Gavin King, Hardy Ferentschik
    • Element Detail

      • validatedBy

        public abstract Class<? extends ConstraintValidator<?,?>>[] validatedBy
        ConstraintValidator 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.

        Returns:
        array of (@code ConstraintValidator} classes implementing the constraint
Skip navigation links

Copyright © 1996-2015, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.

AltStyle によって変換されたページ (->オリジナル) /