net.fortuna.ical4j.model.component

## Class VTimeZone

- java.lang.Object
- - net.fortuna.ical4j.model.Component
  - - net.fortuna.ical4j.model.component.CalendarComponent
    - - net.fortuna.ical4j.model.component.VTimeZone

All Implemented Interfaces:
  Serializable

    public class VTimeZone
    extends CalendarComponent

$Id$ [Apr 5, 2004] Defines an iCalendar VTIMEZONE component.

           4.6.5 Time Zone Component

              Component Name: VTIMEZONE

              Purpose: Provide a grouping of component properties that defines a
              time zone.

              Formal Definition: A "VTIMEZONE" calendar component is defined by the
              following notation:

                timezonec  = "BEGIN" ":" "VTIMEZONE" CRLF

                             2*(

                             ; 'tzid' is required, but MUST NOT occur more
                             ; than once

                           tzid /

                             ; 'last-mod' and 'tzurl' are optional,
                           but MUST NOT occur more than once

                           last-mod / tzurl /

                             ; one of 'standardc' or 'daylightc' MUST occur
                           ..; and each MAY occur more than once.

                           standardc / daylightc /

                           ; the following is optional,
                           ; and MAY occur more than once

                             x-prop

                             )

                             "END" ":" "VTIMEZONE" CRLF

                standardc  = "BEGIN" ":" "STANDARD" CRLF

                             tzprop

                             "END" ":" "STANDARD" CRLF

                daylightc  = "BEGIN" ":" "DAYLIGHT" CRLF

                             tzprop

                             "END" ":" "DAYLIGHT" CRLF

                tzprop     = 3*(

                           ; the following are each REQUIRED,
                           ; but MUST NOT occur more than once

                           dtstart / tzoffsetto / tzoffsetfrom /

                           ; the following are optional,
                           ; and MAY occur more than once

                           comment / rdate / rrule / tzname / x-prop

                           )

Author:
  Ben Fortuna
See Also:
  Serialized Form

### Field Summary

### Fields inherited from class net.fortuna.ical4j.model.component.CalendarComponent

`EMPTY_VALIDATOR`

### Fields inherited from class net.fortuna.ical4j.model.Component

`AVAILABLE, BEGIN, END, EXPERIMENTAL_PREFIX, VALARM, VAVAILABILITY, VEVENT, VFREEBUSY, VJOURNAL, VTIMEZONE, VTODO, VVENUE`

### Constructor Summary

Constructors
Constructor and Description
`VTimeZone()` Default constructor.
`VTimeZone(ComponentList observances)` Constructs a new vtimezone component with no properties and the specified list of type components.
`VTimeZone(PropertyList properties)` Constructs a new instance containing the specified properties.
`VTimeZone(PropertyList properties, ComponentList observances)` Constructor.

### Method Summary

Methods
`Component` `copy()` Overrides default copy method to add support for copying observance sub-components.
`boolean` `equals(Object arg0)`
`Observance` `getApplicableObservance(Date date)` Returns the latest applicable timezone observance for the specified date.
`LastModified` `getLastModified()`
`ComponentList` `getObservances()`
`TzId` `getTimeZoneId()`
`TzUrl` `getTimeZoneUrl()`
`protected Validator` `getValidator(Method method)`
`int` `hashCode()`
`String` `toString()`
`void` `validate(boolean recurse)` Perform validation on a component.

### Methods inherited from class net.fortuna.ical4j.model.component.CalendarComponent

`validate, validateAdd, validateCancel, validateCounter, validateDeclineCounter, validatePublish, validateRefresh, validateReply, validateRequest`

### Methods inherited from class net.fortuna.ical4j.model.Component

`calculateRecurrenceSet, getName, getProperties, getProperties, getProperty, validate, validateProperties`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### VTimeZone

    public VTimeZone()

Default constructor.

#### VTimeZone

    public VTimeZone(PropertyList properties)

Constructs a new instance containing the specified properties.

Parameters:
  `properties` - a list of properties

#### VTimeZone

    public VTimeZone(ComponentList observances)

Constructs a new vtimezone component with no properties and the specified list of type components.

Parameters:
  `observances` - a list of type components

#### VTimeZone

    public VTimeZone(PropertyList properties,
             ComponentList observances)

Constructor.

Parameters:
  `properties` - a list of properties
  `observances` - a list of timezone types

### Method Detail

#### toString

    public final String toString()

Overrides:
  `toString` in class `Component`

#### validate

    public final void validate(boolean recurse)
                        throws ValidationException

Perform validation on a component.

Specified by:
  `validate` in class `Component`
Parameters:
  `recurse` - indicates whether to validate the component's properties
Throws:
  `ValidationException` - where the component is not in a valid state

#### getValidator

    protected Validator getValidator(Method method)

Specified by:
  `getValidator` in class `CalendarComponent`
Parameters:
  `method` - a method to validate on
Returns:
  a validator for the specified method or null if the method is not supported

#### getObservances

    public final ComponentList getObservances()

Returns:
  Returns the types.

#### getApplicableObservance

    public final Observance getApplicableObservance(Date date)

Returns the latest applicable timezone observance for the specified date.

Parameters:
  `date` - the latest possible date for a timezone observance onset
Returns:
  the latest applicable timezone observance for the specified date or null if there are no applicable observances

#### getTimeZoneId

    public final TzId getTimeZoneId()

Returns:
  the mandatory timezone identifier property

#### getLastModified

    public final LastModified getLastModified()

Returns:
  the optional last-modified property

#### getTimeZoneUrl

    public final TzUrl getTimeZoneUrl()

Returns:
  the optional timezone url property

#### equals

    public boolean equals(Object arg0)

Overrides:
  `equals` in class `Component`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Component`

#### copy

    public Component copy()
                   throws ParseException,
                          IOException,
                          URISyntaxException

Overrides default copy method to add support for copying observance sub-components.

Overrides:
  `copy` in class `Component`
Returns:
  a copy of the instance
Throws:
  `ParseException` - where an error occurs parsing data
  `IOException` - where an error occurs reading data
  `URISyntaxException` - where an invalid URI is encountered
See Also:
  `Component.copy()`