Reputation: 744
For example, I'd like to have @Nonnegative
, defined as @Min(0)
, and @DaySeconds
, defined as @Min(0) @Max(86399)
.
Upvotes: 7
Views: 302
Reputation: 137084
Both @Min
and @Max
annotations can be used on annotations themselves. This is called constraint composition.
As such, you can define a new constraint DaySeconds
like this:
@Min(0)
@Max(86399)
@Target( { METHOD, FIELD, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = {})
@Documented
public @interface DaySeconds {
String message() default "{your.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
It would be the same for @Nonnegative
.
Upvotes: 5