Class DutySchedule

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class DutySchedule
    extends java.lang.Object
    implements java.lang.Cloneable
    This class holds information on the duty schedules that users can have. Converstion between different formats of the duty schedule information are possible, as is the comparison between a Calendar passed in and the start and stop times of each day in a duty schedule.
    Author:
    Jason Johns , OpenNMS
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String[] DAY_NAMES
      A list of names to abbreviate the days of the week
      static int FRIDAY
      Constant FRIDAY=4
      static int MONDAY
      A series of constants to identify the days of the week as used by the DutySchedule class
      static int SATURDAY
      Constant SATURDAY=5
      static int SUNDAY
      Constant SUNDAY=6
      static int THURSDAY
      Constant THURSDAY=3
      static int TUESDAY
      Constant TUESDAY=1
      static int WEDNESDAY
      Constant WEDNESDAY=2
    • Constructor Summary

      Constructors 
      Constructor Description
      DutySchedule()
      Create a new DutySchedule.
      DutySchedule​(java.lang.String aSchedule)
      Create a new DutySchedule.
      DutySchedule​(java.util.List<?> aSchedule)
      Create a new DutySchedule.
    • Field Detail

      • MONDAY

        public static final int MONDAY
        A series of constants to identify the days of the week as used by the DutySchedule class
        See Also:
        Constant Field Values
      • DAY_NAMES

        public static final java.lang.String[] DAY_NAMES
        A list of names to abbreviate the days of the week
    • Constructor Detail

      • DutySchedule

        public DutySchedule()
        Create a new DutySchedule. Builds the BitSet used to identify the days of the week that are set.
      • DutySchedule

        public DutySchedule​(java.util.List<?> aSchedule)
        Create a new DutySchedule. This constructor is designed to convert from a Vector filled with 7 Boolean objects and two String objects into the BitSet and integer start and stop time. Very useful for the ModifyUser screen when it is converting from a table display to save the information to a string format for the users.xml.
        Parameters:
        aSchedule - Vector filled with 7 Boolean objects and two String objects
      • DutySchedule

        public DutySchedule​(java.lang.String aSchedule)
        Create a new DutySchedule. This constructor is designed to build a new DutySchedule from a String representation formatted as such. - eg. MoWeFr800-1700, TuTh900-1500.
        Parameters:
        aSchedule - the string to convert to a new DutySchedule
    • Method Detail

      • setDay

        public void setDay​(int aDay)
        Sets the day. This method sets the BitSet that tracks what days this DutySchedule applies to.
        Parameters:
        aDay - the day index to set in the BitSet
      • getStartTime

        public int getStartTime()
        Gets the start time. This method return the start time as an integer
        Returns:
        the start time of this DutySchedule
      • getStopTime

        public int getStopTime()
        Gets the stop time. This method return the stop time as an integer
        Returns:
        the stop time of this DutySchedule
      • getDaysAsBooleanList

        public java.util.List<java.lang.Boolean> getDaysAsBooleanList()
        Gets the days this DutySchedule is active.
        Returns:
        the days this DutySchedule is active.
      • getAsVector

        public java.util.Vector<java.lang.Object> getAsVector()
        Deprecated.
        call the individual getters
        Gets the Vector representation of the DutySchedule. This method formats the DutySchedule as a vector populated with the first seven objects as Booleans set to indicate what days of the week are stored, and the last two objects as Strings that reflect the start time and stop time respectively. This method gives a Vector that can be passed to the DutySchedule(Vector) constructor to create a new DutySchedule
        Returns:
        a Vector properly formatted to reflect this DutySchedule
      • isInSchedule

        public boolean isInSchedule​(java.util.Calendar aTime)
        Test if time is contined in schedule. This method decides if a given time falls within the duty schedule contained in this object. It creates two partial Calendars from the Calendar that is passed in and then sets the start time for one and the end time for the other. Then in a loop it reassigns the day of week according to the BitSet. It makes a comparison to see if the argument Calendar is between the start and stop times and returns true immediately if it is.
        Parameters:
        aTime - the time to check
        Returns:
        true if the Calendar is contained in the duty schedule, false if it isn't.
      • setStartHour

        public void setStartHour​(int anHour)
        Sets the start Hour. This method sets the start time of this DutySchedule
        Parameters:
        anHour - the hour in military time to set the start time for the DutySchedule
      • setEndHour

        public void setEndHour​(int anHour)
        Sets the stop Hour. This method sets the stop time of this DutySchedule
        Parameters:
        anHour - the hour in military time to set the end time for the DutySchedule
      • toString

        public java.lang.String toString()
        String representation. This method returns the DutySchedule formatted as a string that the DutySchedule(String) constructor could parse. The string will be formatted as such: - eg. MoWeFr800-1700, TuTh900-1500.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representation of this DutySchedule
      • hasDay

        public boolean hasDay​(int aDay)

        hasDay

        Parameters:
        aDay - a int.
        Returns:
        a boolean.
      • clone

        public DutySchedule clone()

        clone

        Overrides:
        clone in class java.lang.Object
        Returns:
        a DutySchedule object.