org.jfree.date

Class RelativeDayOfWeekRule

Implemented Interfaces:
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

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 org.jfree.date.AnnualDateRule

clone, getDate

Constructor Details

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 Details

clone

public Object clone()
            throws CloneNotSupportedException
Creates a clone of this rule.
Overrides:
clone in interface AnnualDateRule
Returns:
a clone of this rule.

getDate

public SerialDate getDate(int year)
Returns the date generated by this rule, for the specified year.
Overrides:
getDate in interface AnnualDateRule
Parameters:
year - the year (1900 <= year <= 9999).
Returns:
The date generated by the rule for the given year (possibly null).

getDayOfWeek

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

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.

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.

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).

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.

setSubrule

public void setSubrule(AnnualDateRule subrule)
Sets the sub-rule.
Parameters:
subrule - the annual date rule that determines the reference date for this rule.