net.fortuna.ical4j.model.property

## Class RecurrenceId

- java.lang.Object
- - net.fortuna.ical4j.model.Content
  - - net.fortuna.ical4j.model.Property
    - - net.fortuna.ical4j.model.property.DateProperty
      - - net.fortuna.ical4j.model.property.RecurrenceId

All Implemented Interfaces:
  Serializable

    public class RecurrenceId
    extends DateProperty

$Id$ Created: [Apr 6, 2004] Defines a RECURRENCE-ID iCalendar component property.

         4.8.4.4 Recurrence ID

            Property Name: RECURRENCE-ID

            Purpose: This property is used in conjunction with the "UID" and
            "SEQUENCE" property to identify a specific instance of a recurring
            "VEVENT", "VTODO" or "VJOURNAL" calendar component. The property
            value is the effective value of the "DTSTART" property of the
            recurrence instance.

            Value Type: The default value type for this property is DATE-TIME.
            The time format can be any of the valid forms defined for a DATE-TIME
            value type. See DATE-TIME value type definition for specific
            interpretations of the various forms. The value type can be set to
            DATE.

            Property Parameters: Non-standard property, value data type, time
            zone identifier and recurrence identifier range parameters can be
            specified on this property.

            Conformance: This property can be specified in an iCalendar object
            containing a recurring calendar component.

            Description: The full range of calendar components specified by a
            recurrence set is referenced by referring to just the "UID" property
            value corresponding to the calendar component. The "RECURRENCE-ID"
            property allows the reference to an individual instance within the
            recurrence set.

            If the value of the "DTSTART" property is a DATE type value, then the
            value MUST be the calendar date for the recurrence instance.

            The date/time value is set to the time when the original recurrence
            instance would occur; meaning that if the intent is to change a
            Friday meeting to Thursday, the date/time is still set to the
            original Friday meeting.

            The "RECURRENCE-ID" property is used in conjunction with the "UID"
            and "SEQUENCE" property to identify a particular instance of a
            recurring event, to-do or journal. For a given pair of "UID" and
            "SEQUENCE" property values, the "RECURRENCE-ID" value for a
            recurrence instance is fixed. When the definition of the recurrence
            set for a calendar component changes, and hence the "SEQUENCE"
            property value changes, the "RECURRENCE-ID" for a given recurrence
            instance might also change.The "RANGE" parameter is used to specify
            the effective range of recurrence instances from the instance
            specified by the "RECURRENCE-ID" property value. The default value
            for the range parameter is the single recurrence instance only. The
            value can also be "THISANDPRIOR" to indicate a range defined by the
            given recurrence instance and all prior instances or the value can be
            "THISANDFUTURE" to indicate a range defined by the given recurrence
            instance and all subsequent instances.

            Format Definition: The property is defined by the following notation:

              recurid    = "RECURRENCE-ID" ridparam ":" ridval CRLF

              ridparam   = *(

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

                         (";" "VALUE" "=" ("DATE-TIME" / "DATE)) /
                         (";" tzidparam) / (";" rangeparam) /

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

                         (";" xparam)

                         )

              ridval     = date-time / date
              ;Value MUST match value type

Author:
  Ben Fortuna
See Also:
  Serialized Form

### Field Summary

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

`ACTION, ATTACH, ATTENDEE, BUSYTYPE, CALSCALE, CATEGORIES, CLASS, COMMENT, COMPLETED, CONTACT, COUNTRY, CREATED, DESCRIPTION, DTEND, DTSTAMP, DTSTART, DUE, DURATION, EXDATE, EXPERIMENTAL_PREFIX, EXRULE, EXTENDED_ADDRESS, FREEBUSY, GEO, LAST_MODIFIED, LOCALITY, LOCATION, LOCATION_TYPE, METHOD, NAME, ORGANIZER, PERCENT_COMPLETE, POSTALCODE, PRIORITY, PRODID, RDATE, RECURRENCE_ID, REGION, RELATED_TO, REPEAT, REQUEST_STATUS, RESOURCES, RRULE, SEQUENCE, STATUS, STREET_ADDRESS, SUMMARY, TEL, TRANSP, TRIGGER, TZID, TZNAME, TZOFFSETFROM, TZOFFSETTO, TZURL, UID, URL, VERSION`

### Constructor Summary

Constructors
Constructor and Description
`RecurrenceId()` Default constructor.
`RecurrenceId(Date aDate)` Constructor.
`RecurrenceId(ParameterList aList, Date aDate)` Constructor.
`RecurrenceId(ParameterList aList, String aValue)`
`RecurrenceId(String value)` Creates a new instance initialised with the parsed value.
`RecurrenceId(String value, TimeZone timezone)` Creates a new RECURRENCE_ID property initialised with the specified timezone and value.
`RecurrenceId(TimeZone timezone)` Creates a new RECURRENCE_ID property initialised with the specified timezone.

### Method Summary

Methods
`void` `validate()` Perform validation on a property.

### Methods inherited from class net.fortuna.ical4j.model.property.DateProperty

`copy, getDate, getTimeZone, getValue, hashCode, isUtc, setDate, setTimeZone, setUtc, setValue`

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

`equals, getName, getParameter, getParameters, getParameters, isCalendarProperty, toString`

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

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

### Constructor Detail

#### RecurrenceId

    public RecurrenceId()

Default constructor.

#### RecurrenceId

    public RecurrenceId(TimeZone timezone)

Creates a new RECURRENCE_ID property initialised with the specified timezone.

Parameters:
  `timezone` - initial timezone

#### RecurrenceId

    public RecurrenceId(String value)
                 throws ParseException

Creates a new instance initialised with the parsed value.

Parameters:
  `value` - the RECURRENCE_ID value string to parse
Throws:
  `ParseException` - where the specified string is not a valid RECURRENCE_ID value representation

#### RecurrenceId

    public RecurrenceId(String value,
                TimeZone timezone)
                 throws ParseException

Creates a new RECURRENCE_ID property initialised with the specified timezone and value.

Parameters:
  `value` - a string representation of a RECURRENCE_ID value
  `timezone` - initial timezone
Throws:
  `ParseException` - where the specified value is not a valid string representation

#### RecurrenceId

    public RecurrenceId(ParameterList aList,
                String aValue)
                 throws ParseException

Parameters:
  `aList` - a list of parameters for this component
  `aValue` - a value string for this component
Throws:
  `ParseException` - where the specified value string is not a valid date-time/date representation

#### RecurrenceId

    public RecurrenceId(Date aDate)

Constructor. Date or Date-Time format is determined based on the presence of a VALUE parameter.

Parameters:
  `aDate` - a date representation of a date or date-time

#### RecurrenceId

    public RecurrenceId(ParameterList aList,
                Date aDate)

Constructor. Date or Date-Time format is determined based on the presence of a VALUE parameter.

Parameters:
  `aList` - a list of parameters for this component
  `aDate` - a date representation of a date or date-time

### Method Detail

#### validate

    public final void validate()
                        throws ValidationException

Perform validation on a property.

Overrides:
  `validate` in class `DateProperty`
Throws:
  `ValidationException` - where the property is not in a valid state