Class 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

      Constructors 
      Constructor Description
      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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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).