org.jfree.date

## Class AnnualDateRule

- java.lang.Object
- - org.jfree.date.AnnualDateRule

- All Implemented Interfaces:
    java.lang.Cloneable
  Direct Known Subclasses:
    DayAndMonthRule, DayOfWeekInMonthRule, EasterSundayRule, RelativeDayOfWeekRule

      public abstract class AnnualDateRule
      extends java.lang.Object
      implements java.lang.Cloneable

  The base class for all 'annual' date rules: that is, rules for generating one date for any given year.

  One example is Easter Sunday (which can be calculated using published algorithms).

  Author:
    David Gilbert

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AnnualDateRule()` Default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Returns a clone of the rule.
    `abstract SerialDate` | `getDate(int year)` Returns the date for this rule, given the year.

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AnnualDateRule

          protected AnnualDateRule()

      Default constructor.

  - ### Method Detail

    - #### getDate

          public abstract SerialDate getDate(int year)

      Returns the date for this rule, given the year.
      Parameters:
        `year` - the year (1900 <= year <= 9999).
      Returns:
        the date for this rule, given the year.

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Returns a clone of the rule.

      You should refer to the documentation of the clone() method in each subclass for exact details.

      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        a clone of the rule.
      Throws:
        `java.lang.CloneNotSupportedException` - if the rule is not clonable.