@Documented @Constraint(validatedBy={MaxAfterValidator.ForDate.class,MaxAfterValidator.ForCalendar.class,MaxAfterValidator.ForInstant.class,MaxAfterValidator.ForLocalDate.class,MaxAfterValidator.ForLocalDateTime.class,MaxAfterValidator.ForLocalTime.class,MaxAfterValidator.ForOffsetDateTime.class,MaxAfterValidator.ForOffsetTime.class,MaxAfterValidator.ForYear.class,MaxAfterValidator.ForYearMonth.class,MaxAfterValidator.ForZonedDateTime.class}) @Target(value={METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER,TYPE_USE}) @Retention(value=RUNTIME) @Repeatable(value=MaxAfter.List.class) public @interface MaxAfter
object
, validates that object <= moment + duration
.
Supported types are:
Date
Calendar
Instant
LocalDate
LocalDateTime
LocalTime
OffsetDateTime
OffsetTime
Year
YearMonth
ZonedDateTime
MonthDay
is explicitly not supported for the same reason that it implements TemporalAccessor
and not
Temporal
.
null
elements are considered valid.
public abstract String duration
moment()
.
The value to validate may impose limitations on the duration. For instance, LocalDate
does not allow a time part, and LocalTime
does not allow a date part.
public abstract String moment
now
to use the current moment in time as defined
by the ClockProvider
attached to the Validator
or ValidatorFactory
. The default ClockProvider
defines the
current time according to the virtual machine, applying the current default time zone if needed.
For Date
, this value will be parsed using DateTimeFormatter.ISO_INSTANT
; for Calendar
, using
DateTimeFormatter.ISO_ZONED_DATE_TIME
.
public abstract String message
public abstract Class<?>[] groups
Copyright © 2021–2022. All rights reserved.