net.fortuna.ical4j.model.property

## Class RDate

- java.lang.Object
- - net.fortuna.ical4j.model.Content
  - - net.fortuna.ical4j.model.Property
    - - net.fortuna.ical4j.model.property.DateListProperty
      - - net.fortuna.ical4j.model.property.RDate

All Implemented Interfaces:
  Serializable

    public class RDate
    extends DateListProperty

$Id$ Created: [Apr 6, 2004] Defines an RDATE iCalendar component property.

         4.8.5.3 Recurrence Date/Times

            Property Name: RDATE

            Purpose: This property defines the list of date/times for a
            recurrence set.

            Value Type: The default value type for this property is DATE-TIME.
            The value type can be set to DATE or PERIOD.

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

            Conformance: The property can be specified in "VEVENT", "VTODO",
            "VJOURNAL" or "VTIMEZONE" calendar components.

            Description: This property can appear along with the "RRULE" property
            to define an aggregate set of repeating occurrences. When they both
            appear in an iCalendar object, the recurring events are defined by
            the union of occurrences defined by both the "RDATE" and "RRULE".

            The recurrence dates, if specified, are used in computing the
            recurrence set. The recurrence set is the complete set of recurrence
            instances for a calendar component. The recurrence set is generated
            by considering the initial "DTSTART" property along with the "RRULE",
            "RDATE", "EXDATE" and "EXRULE" properties contained within the
            iCalendar object. The "DTSTART" property defines the first instance
            in the recurrence set. Multiple instances of the "RRULE" and "EXRULE"
            properties can also be specified to define more sophisticated
            recurrence sets. The final recurrence set is generated by gathering
            all of the start date/times generated by any of the specified "RRULE"
            and "RDATE" properties, and excluding any start date/times which fall
            within the union of start date/times generated by any specified
            "EXRULE" and "EXDATE" properties. This implies that start date/times
            within exclusion related properties (i.e., "EXDATE" and "EXRULE")
            take precedence over those specified by inclusion properties (i.e.,
            "RDATE" and "RRULE"). Where duplicate instances are generated by the
            "RRULE" and "RDATE" properties, only one recurrence is considered.
            Duplicate instances are ignored.

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

              rdate      = "RDATE" rdtparam ":" rdtval *("," rdtval) CRLF

              rdtparam   = *(

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

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

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

                         (";" xparam)

                         )

              rdtval     = date-time / date / period
              ;Value MUST match value type

            Example: The following are examples of this property:

              RDATE:19970714T123000Z

              RDATE;TZID=US-EASTERN:19970714T083000

              RDATE;VALUE=PERIOD:19960403T020000Z/19960403T040000Z,
               19960404T010000Z/PT3H

              RDATE;VALUE=DATE:19970101,19970120,19970217,19970421
               19970526,19970704,19970901,19971014,19971128,19971129,19971225

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
`RDate()` Default constructor.
`RDate(DateList dates)` Constructor.
`RDate(ParameterList aList, DateList dates)` Constructor.
`RDate(ParameterList aList, PeriodList periods)` Constructor.
`RDate(ParameterList aList, String aValue)`
`RDate(PeriodList periods)` Constructor.

### Method Summary

Methods
`PeriodList` `getPeriods()`
`String` `getValue()`
`void` `setTimeZone(TimeZone timezone)` Sets the timezone associated with this property.
`void` `setValue(String aValue)` Sets the current value of the property.
`void` `validate()` Perform validation on a property.

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

`copy, getDates, getTimeZone, setUtc`

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

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

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

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

### Constructor Detail

#### RDate

    public RDate()

Default constructor.

#### RDate

    public RDate(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

#### RDate

    public RDate(DateList dates)

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

Parameters:
  `dates` - a list of dates

#### RDate

    public RDate(ParameterList aList,
         DateList dates)

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
  `dates` - a list of dates

#### RDate

    public RDate(PeriodList periods)

Constructor.

Parameters:
  `periods` - a list of periods

#### RDate

    public RDate(ParameterList aList,
         PeriodList periods)

Constructor.

Parameters:
  `aList` - a list of parameters for this component
  `periods` - a list of periods

### Method Detail

#### validate

    public final void 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

#### getPeriods

    public final PeriodList getPeriods()

Returns:
  Returns the period list.

#### setValue

    public final void setValue(String aValue)
                        throws ParseException

Sets the current value of the property.

Overrides:
  `setValue` in class `DateListProperty`
Parameters:
  `aValue` - a string representation of the property value
Throws:
  `ParseException` - possibly thrown by setting the value of certain properties

#### getValue

    public final String getValue()

Overrides:
  `getValue` in class `DateListProperty`
Returns:
  the content value

#### setTimeZone

    public final void setTimeZone(TimeZone timezone)

Sets the timezone associated with this property.

Overrides:
  `setTimeZone` in class `DateListProperty`
Parameters:
  `timezone` - a timezone to associate with this property