Class HolidayModel

java.lang.Object
com.highdeal.calendar.hci.HolidayModel
All Implemented Interfaces:
XMLMapping, XMLMarshallable

public class HolidayModel extends Object implements XMLMarshallable, XMLMapping
This Java class represents the scheme of a holiday that is contained in public holidays.

XML API for HCI

The XML APIs specify the following XSD fragment:

XSD Fragment

<xs:element name="holiday">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="description" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="lang" type="xs:string" use="required"/>
          <xs:attribute name="label" type="xs:string" use="required"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="code" type="xs:string" use="required"/>
        </xs:complexType>
      </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="fixedDay" minOccurs="1" maxOccurs="1">
          <xs:complexType>
              <xs:attribute name="month" type="MonthType" use="required"/>
              <xs:attribute name="day" type="xs:integer" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="relativeDay" minOccurs="1" maxOccurs="1">
          <xs:complexType>
              <xs:attribute name="month" type="MonthType" use="required"/>
              <xs:attribute name="weekday" type="WeekdayType" use="required"/>
              <xs:attribute name="position" type="PositionType" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="easterRelativeDay" minOccurs="1" maxOccurs="1">
          <xs:complexType>
              <xs:attribute name="offset" type="xs:integer" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="enumeratedDay" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
            <xs:element name="date" minOccurs="0" maxOccurs="unbounded">
              <xs:complexType>
                <xs:attribute name="value" type="xs:date"/>
              </xs:complexType>
            </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
     </xs:sequence>
     <xs:attribute name="code" type="xs:string" use="required"/>
   </xs:complexType>
 </xs:element>
<xs:simpleType name="MonthType">
   <xs:restriction base="xs:string">
      <xs:enumeration value="January"/>
      <xs:enumeration value="February"/>
      <xs:enumeration value="March"/>
      <xs:enumeration value="April"/>
      <xs:enumeration value="May"/>
      <xs:enumeration value="June"/>
      <xs:enumeration value="July"/>
      <xs:enumeration value="August"/>
      <xs:enumeration value="September"/>
      <xs:enumeration value="October"/>
      <xs:enumeration value="November"/>
      <xs:enumeration value="December"/>
   </xs:restriction>
 </xs:simpleType>
<xs:simpleType name="WeekdayType">
   <xs:restriction base="xs:string">
      <xs:enumeration value="Sunday"/>
      <xs:enumeration value="Monday"/>
      <xs:enumeration value="Tuesday"/>
      <xs:enumeration value="Wednesday"/>
      <xs:enumeration value="Thursday"/>
      <xs:enumeration value="Friday"/>
      <xs:enumeration value="Saturday"/>
   </xs:restriction>
 </xs:simpleType>
<xs:simpleType name="PositionType">
   <xs:restriction base="xs:string">
      <xs:enumeration value="last"/>
      <xs:enumeration value="first"/>
      <xs:enumeration value="second"/>
      <xs:enumeration value="third"/>
      <xs:enumeration value="fourth"/>
      <xs:enumeration value="fifth"/>
   </xs:restriction>
 </xs:simpleType>

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    FOR INTERNAL USE ONLY - This Java interface is implemented by classes that define a day.
    static final class 
    This Java class enables to define day which is relative to Easter Sunday.
    static final class 
    This Java class enables to define a enumerated day, that is to say a day given by an enumeration of precise date (including year).
    static final class 
    This Java class enables to define a fixed day, that is to say a day given by a fixed date, same date each year (such as New Year Day, for instance).
    static final class 
    This Java class enables to define a relative day, that is to say a day given by a week day position in a month (e.g.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constant used for type of HolidayModel.EasterRelativeDay.
    static final int
    Constant used for type of HolidayModel.EnumeratedDay.
    static final int
    0: Constant used for type of HolidayModel.FixedDay
    static final String[]
    An array containing the valid month names, defined as: MONTHS[0] is "January" MONTHS[1] is "February" MONTHS[2] is "March" MONTHS[3] is "April" MONTHS[4] is "May" MONTHS[5] is "June" MONTHS[6] is "July" MONTHS[7] is "August" MONTHS[8] is "September" MONTHS[9] is "October" MONTHS[10] is "November" MONTHS[11] is "December"
    static final String[]
    An array containing the valid position names, defined as: POSITIONS[0] is "last" POSITIONS[1] is "first" POSITIONS[2] is "second" POSITIONS[3] is "third" POSITIONS[4] is "fourth" POSITIONS[5] is "fifth"
    static final int
    Constant used for type of HolidayModel.RelativeDay.
    static final String[]
    An array containing the valid weekday names, defined as: WEEKDAYS[0] is "Sunday" WEEKDAYS[1] is "Monday" WEEKDAYS[2] is "Tuesday" WEEKDAYS[3] is "Wednesday" WEEKDAYS[4] is "Thursday" WEEKDAYS[5] is "Friday" WEEKDAYS[6] is "Saturday"
  • Constructor Summary

    Constructors
    Constructor
    Description
    Builds a new empty model.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds character data to the content element.
    void
    addChild(String tagName, XMLMarshallable child)
    Adds a child to the object, the child representing the marshallable object which must be added to the element.
    void
    Verifies this HolidayModel is valid.
    getClass(String nsUri, String tag, XMLAttributes atts)
    Returns the Java class for a specified XML tag and its attributes in a namespace.
    Gets the code of this HolidayModel.
    Returns the DayDefinition of this.
    Gets the description associated with the given language, if exists.
    Returns all set descriptions, as a Properties with languages as key and descriptions as values.
    Returns the list of the codes of groups to which this HolidayModel belongs.
    boolean
    Tests is this belongs to the given group.
    void
    Gives an XML representation of this object, including its children.
    void
    Sets the attributes of the XML representation of the element being processed.
    void
    Sets the code of this HolidayModel.
    void
    Sets the DayDefinition of this.
    void
    setDescription(String language, String label)
    Sets a description associated with a language.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • FIX_TYPE

      public static final int FIX_TYPE
      0: Constant used for type of HolidayModel.FixedDay
      See Also:
    • RELATIVE_TYPE

      public static final int RELATIVE_TYPE
      Constant used for type of HolidayModel.RelativeDay. Internal use only.
      See Also:
    • EASTER_RELATIVE_TYPE

      public static final int EASTER_RELATIVE_TYPE
      Constant used for type of HolidayModel.EasterRelativeDay. Internal use only.
      See Also:
    • ENUM_TYPE

      public static final int ENUM_TYPE
      Constant used for type of HolidayModel.EnumeratedDay. Internal use only.
      See Also:
    • MONTHS

      public static final String[] MONTHS
      An array containing the valid month names, defined as:
      • MONTHS[0] is "January"
      • MONTHS[1] is "February"
      • MONTHS[2] is "March"
      • MONTHS[3] is "April"
      • MONTHS[4] is "May"
      • MONTHS[5] is "June"
      • MONTHS[6] is "July"
      • MONTHS[7] is "August"
      • MONTHS[8] is "September"
      • MONTHS[9] is "October"
      • MONTHS[10] is "November"
      • MONTHS[11] is "December"
    • WEEKDAYS

      public static final String[] WEEKDAYS
      An array containing the valid weekday names, defined as:
      • WEEKDAYS[0] is "Sunday"
      • WEEKDAYS[1] is "Monday"
      • WEEKDAYS[2] is "Tuesday"
      • WEEKDAYS[3] is "Wednesday"
      • WEEKDAYS[4] is "Thursday"
      • WEEKDAYS[5] is "Friday"
      • WEEKDAYS[6] is "Saturday"
    • POSITIONS

      public static final String[] POSITIONS
      An array containing the valid position names, defined as:
      • POSITIONS[0] is "last"
      • POSITIONS[1] is "first"
      • POSITIONS[2] is "second"
      • POSITIONS[3] is "third"
      • POSITIONS[4] is "fourth"
      • POSITIONS[5] is "fifth"
  • Constructor Details

    • HolidayModel

      public HolidayModel()
      Builds a new empty model.
  • Method Details

    • getCode

      public String getCode()
      Gets the code of this HolidayModel.
      Returns:
      The code of this HolidayModel
    • setCode

      public void setCode(String code)
      Sets the code of this HolidayModel.
      Parameters:
      code - The code of this HolidayModel
    • getGroups

      public Vector<String> getGroups()
      Returns the list of the codes of groups to which this HolidayModel belongs.
      Returns:
      The list of the codes of groups to which this HolidayModel belongs
    • setDescription

      public void setDescription(String language, String label)
      Sets a description associated with a language.
      Parameters:
      language - The language of the label, should be given as ISO-639 code
      label - The label associated with the given language
    • getDescription

      public String getDescription(String language)
      Gets the description associated with the given language, if exists.
      Parameters:
      language - The language
      Returns:
      The description associated with the given language, if exists, null otherwise.
    • getDescriptions

      public Properties getDescriptions()
      Returns all set descriptions, as a Properties with languages as key and descriptions as values.
      Returns:
      A Properties with languages as key and descriptions as values
    • getDayDefinition

      public HolidayModel.DayDefinition getDayDefinition()
      Returns the DayDefinition of this.
      Returns:
      The DayDefinition of this
    • setDayDefinition

      public void setDayDefinition(HolidayModel.DayDefinition dayDefinition)
      Sets the DayDefinition of this.
      Parameters:
      dayDefinition - The DayDefinition of this
    • isInGroup

      public boolean isInGroup(String group)
      Tests is this belongs to the given group.
      Parameters:
      group - The code of the group to test
      Returns:
      true if this belongs to the given group, false otherwise
    • setAttributes

      public void setAttributes(XMLAttributes atts)
      Description copied from interface: XMLMarshallable
      Sets the attributes of the XML representation of the element being processed.
      Specified by:
      setAttributes in interface XMLMarshallable
      Parameters:
      atts - The XML attributes of the current element
    • addChild

      public void addChild(String tagName, XMLMarshallable child)
      Description copied from interface: XMLMarshallable
      Adds a child to the object, the child representing the marshallable object which must be added to the element.
      Specified by:
      addChild in interface XMLMarshallable
      Parameters:
      tagName - The name of tag for the child
      child - The child to be added
    • addCharacterData

      public void addCharacterData(String cData)
      Description copied from interface: XMLMarshallable
      Adds character data to the content element.
      Specified by:
      addCharacterData in interface XMLMarshallable
      Parameters:
      cData - The character data to be added
    • marshal

      public void marshal(XMLOutputter output)
      Description copied from interface: XMLMarshallable
      Gives an XML representation of this object, including its children.
      Specified by:
      marshal in interface XMLMarshallable
      Parameters:
      output - The XML output to marshal the object into
    • checkValidity

      public void checkValidity() throws InvalidHolidayException
      Verifies this HolidayModel is valid. An InvalidHolidayException is thrown in the following cases:
      • the code is null
      • a description is set without language
      • a description is set with an empty label
      • the DayDafinition is invalid
      Throws:
      InvalidHolidayException
      See Also:
    • getClass

      public Class<?> getClass(String nsUri, String tag, XMLAttributes atts)
      Description copied from interface: XMLMapping
      Returns the Java class for a specified XML tag and its attributes in a namespace.
      Specified by:
      getClass in interface XMLMapping
      Parameters:
      nsUri - The unique resource identifier of the namespace of the XML tag
      tag - The local part of the XML tag
      atts - The attributes of the XML tag
      Returns:
      A Java class with a default constructor