org.jfree.date
Class RelativeDayOfWeekRule

java.lang.Object
  extended by org.jfree.date.AnnualDateRule
      extended by org.jfree.date.RelativeDayOfWeekRule
All Implemented Interfaces:
java.lang.Cloneable

public class RelativeDayOfWeekRule
extends AnnualDateRule

An annual date rule that returns a date for each year based on (a) a reference rule; (b) a day of the week; and (c) a selection parameter (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).

For example, Good Friday can be specified as 'the Friday PRECEDING Easter Sunday'.

Author:
David Gilbert

Constructor Summary
RelativeDayOfWeekRule()
          Default constructor - builds a rule for the Monday following 1 January.
RelativeDayOfWeekRule(AnnualDateRule subrule, int dayOfWeek, int relative)
          Standard constructor - builds rule based on the supplied sub-rule.
 
Method Summary
 java.lang.Object clone()
          Creates a clone of this rule.
 SerialDate getDate(int year)
          Returns the date generated by this rule, for the specified year.
 int getDayOfWeek()
          Returns the day-of-the-week for this rule.
 int getRelative()
          Returns the 'relative' attribute, that determines *which* day-of-the-week we are interested in (SerialDate.PRECEDING, SerialDate.NEAREST or SerialDate.FOLLOWING).
 AnnualDateRule getSubrule()
          Returns the sub-rule (also called the reference rule).
 void setDayOfWeek(int dayOfWeek)
          Sets the day-of-the-week for this rule.
 void setRelative(int relative)
          Sets the 'relative' attribute (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).
 void setSubrule(AnnualDateRule subrule)
          Sets the sub-rule.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RelativeDayOfWeekRule

public RelativeDayOfWeekRule()
Default constructor - builds a rule for the Monday following 1 January.


RelativeDayOfWeekRule

public RelativeDayOfWeekRule(AnnualDateRule subrule,
                             int dayOfWeek,
                             int relative)
Standard constructor - builds rule based on the supplied sub-rule.

Parameters:
subrule - the rule that determines the reference date.
dayOfWeek - the day-of-the-week relative to the reference date.
relative - indicates *which* day-of-the-week (preceding, nearest or following).
Method Detail

getSubrule

public AnnualDateRule getSubrule()
Returns the sub-rule (also called the reference rule).

Returns:
The annual date rule that determines the reference date for this rule.

setSubrule

public void setSubrule(AnnualDateRule subrule)
Sets the sub-rule.

Parameters:
subrule - the annual date rule that determines the reference date for this rule.

getDayOfWeek

public int getDayOfWeek()
Returns the day-of-the-week for this rule.

Returns:
the day-of-the-week for this rule.

setDayOfWeek

public void setDayOfWeek(int dayOfWeek)
Sets the day-of-the-week for this rule.

Parameters:
dayOfWeek - the day-of-the-week (SerialDate.MONDAY, SerialDate.TUESDAY, and so on).

getRelative

public int getRelative()
Returns the 'relative' attribute, that determines *which* day-of-the-week we are interested in (SerialDate.PRECEDING, SerialDate.NEAREST or SerialDate.FOLLOWING).

Returns:
The 'relative' attribute.

setRelative

public void setRelative(int relative)
Sets the 'relative' attribute (SerialDate.PRECEDING, SerialDate.NEAREST, SerialDate.FOLLOWING).

Parameters:
relative - determines *which* day-of-the-week is selected by this rule.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Creates a clone of this rule.

Overrides:
clone in class AnnualDateRule
Returns:
a clone of this rule.
Throws:
java.lang.CloneNotSupportedException - this should never happen.

getDate

public SerialDate getDate(int year)
Returns the date generated by this rule, for the specified year.

Specified by:
getDate in class AnnualDateRule
Parameters:
year - the year (1900 <= year <= 9999).
Returns:
The date generated by the rule for the given year (possibly null).