Class RecurValidator

  • All Implemented Interfaces:
    Serializable, Validator<Recur>

    public class RecurValidator
    extends Object
    implements Validator<Recur>
    This validator provides semantic recurrence rule validation according to the RFC5545 specification excerpt listed below.
    
           The table below summarizes the dependency of BYxxx rule part
           expand or limit behavior on the FREQ rule part value.
    
           The term "N/A" means that the corresponding BYxxx rule part MUST
           NOT be used with the corresponding FREQ value.
    
           BYDAY has some special behavior depending on the FREQ value and
           this is described in separate notes below the table.
    
        +----------+--------+--------+-------+-------+------+-------+------+
        |          |SECONDLY|MINUTELY|HOURLY |DAILY  |WEEKLY|MONTHLY|YEARLY|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYMONTH   |Limit   |Limit   |Limit  |Limit  |Limit |Limit  |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYWEEKNO  |N/A     |N/A     |N/A    |N/A    |N/A   |N/A    |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYYEARDAY |Limit   |Limit   |Limit  |N/A    |N/A   |N/A    |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYMONTHDAY|Limit   |Limit   |Limit  |Limit  |N/A   |Expand |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYDAY     |Limit   |Limit   |Limit  |Limit  |Expand|Note 1 |Note 2|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYHOUR    |Limit   |Limit   |Limit  |Expand |Expand|Expand |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYMINUTE  |Limit   |Limit   |Expand |Expand |Expand|Expand |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYSECOND  |Limit   |Expand  |Expand |Expand |Expand|Expand |Expand|
        +----------+--------+--------+-------+-------+------+-------+------+
        |BYSETPOS  |Limit   |Limit   |Limit  |Limit  |Limit |Limit  |Limit |
        +----------+--------+--------+-------+-------+------+-------+------+
    
           Note 1:  Limit if BYMONTHDAY is present; otherwise, special expand
                    for MONTHLY.
    
           Note 2:  Limit if BYYEARDAY or BYMONTHDAY is present; otherwise,
                    special expand for WEEKLY if BYWEEKNO present; otherwise,
                    special expand for MONTHLY if BYMONTH present; otherwise,
                    special expand for YEARLY.
     
    See Also:
    Serialized Form
    • Constructor Detail

      • RecurValidator

        public RecurValidator()
    • Method Detail

      • validate

        public ValidationResult validate​(Recur target)
                                  throws ValidationException
        Description copied from interface: Validator
        Validates the target content by applying validation rules. When content fails validation the validator may throw an exception depending on the implementation.
        Specified by:
        validate in interface Validator<Recur>
        Parameters:
        target - the target of validation
        Returns:
        the result of validation applied to the specified target
        Throws:
        ValidationException - indicates validation failure (implementation-specific)