Class DateProperty

All Implemented Interfaces:
Serializable, Comparable<Property>, FluentProperty
Direct Known Subclasses:
DtEnd, DtStart, Due, RecurrenceId, UtcProperty

public abstract class DateProperty extends Property
$Id$

Created on 9/07/2005

Base class for properties with a DATE or DATE-TIME value. Note that some sub-classes may only allow either a DATE or a DATE-TIME value, for which additional rules/validation should be specified.

See Also:
  • Constructor Details

    • DateProperty

      public DateProperty(String name, ParameterList parameters, PropertyFactory factory)
      Parameters:
      name - the property name
      parameters - a list of initial parameters
    • DateProperty

      public DateProperty(String name, PropertyFactory factory)
      Parameters:
      name - the property name
    • DateProperty

      public DateProperty(String name, TimeZone timezone, PropertyFactory factory)
      Creates a new instance of the named property with an initial timezone.
      Parameters:
      name - property name
      timezone - initial timezone
  • Method Details

    • getDate

      public final Date getDate()
      Returns:
      Returns the date.
    • setDate

      public final void setDate(Date date)
      Sets the date value of this property. The timezone and value of this instance will also be updated accordingly.
      Parameters:
      date - The date to set.
    • setValue

      public void setValue(String value) throws ParseException
      Default setValue() implementation. Allows for either DATE or DATE-TIME values.
      Specified by:
      setValue in class Property
      Parameters:
      value - a string representation of a DATE or DATE-TIME value
      Throws:
      ParseException - where the specified value is not a valid DATE or DATE-TIME representation
    • getValue

      public String getValue()
      Specified by:
      getValue in class Content
      Returns:
      the content value
    • setTimeZone

      public void setTimeZone(TimeZone timezone)
      Publically available method to update the current timezone.
      Parameters:
      timezone - a timezone instance
    • getTimeZone

      public final TimeZone getTimeZone()
      Returns:
      the timezone
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Property
    • setUtc

      public final void setUtc(boolean utc)
      Resets the VTIMEZONE associated with the property. If utc is true, any TZID parameters are removed and the Java timezone is updated to UTC time. If utc is false, TZID parameters are removed and the Java timezone is set to the default timezone (i.e. represents a "floating" local time)
      Parameters:
      utc - a UTC value
    • isUtc

      public final boolean isUtc()
      Indicates whether the current date value is specified in UTC time.
      Returns:
      true if the property is in UTC time, otherwise false
    • validate

      public ValidationResult validate() throws ValidationException
      Perform validation on a property.
      Specified by:
      validate in class Property
      Throws:
      ValidationException - where the property is not in a valid state
    • copy

      Create a (deep) copy of this property.
      Overrides:
      copy in class Property
      Returns:
      the copy of the property
      Throws:
      IOException - where an error occurs reading property data
      URISyntaxException - where the property contains an invalid URI value
      ParseException - where the property contains an invalid date value
    • compareTo

      public int compareTo(Property o)
      Specified by:
      compareTo in interface Comparable<Property>
      Overrides:
      compareTo in class Property