net.fortuna.ical4j.model.property

## Class Uid

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

All Implemented Interfaces:
  Serializable, Escapable

    public class Uid
    extends Property
    implements Escapable

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

         4.8.4.7 Unique Identifier

            Property Name: UID

            Purpose: This property defines the persistent, globally unique
            identifier for the calendar component.

            Value Type: TEXT

            Property Parameters: Non-standard property parameters can be
            specified on this property.

            Conformance: The property MUST be specified in the "VEVENT", "VTODO",
            "VJOURNAL" or "VFREEBUSY" calendar components.

            Description: The UID itself MUST be a globally unique identifier. The
            generator of the identifier MUST guarantee that the identifier is
            unique. There are several algorithms that can be used to accomplish
            this. The identifier is RECOMMENDED to be the identical syntax to the
            [RFC 822] addr-spec. A good method to assure uniqueness is to put the
            domain name or a domain literal IP address of the host on which the
            identifier was created on the right hand side of the "@", and on the
            left hand side, put a combination of the current calendar date and
            time of day (i.e., formatted in as a DATE-TIME value) along with some
            other currently unique (perhaps sequential) identifier available on
            the system (for example, a process id number). Using a date/time
            value on the left hand side and a domain name or domain literal on
            the right hand side makes it possible to guarantee uniqueness since
            no two hosts should be using the same domain name or IP address at
            the same time. Though other algorithms will work, it is RECOMMENDED
            that the right hand side contain some domain identifier (either of
            the host itself or otherwise) such that the generator of the message
            identifier can guarantee the uniqueness of the left hand side within
            the scope of that domain.

            This is the method for correlating scheduling messages with the
            referenced "VEVENT", "VTODO", or "VJOURNAL" calendar component.

            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.

            This property is an important method for group scheduling
            applications to match requests with later replies, modifications or
            deletion requests. Calendaring and scheduling applications MUST
            generate this property in "VEVENT", "VTODO" and "VJOURNAL" calendar
            components to assure interoperability with other group scheduling
            applications. This identifier is created by the calendar system that
            generates an iCalendar object.

            Implementations MUST be able to receive and persist values of at
            least 255 characters for this property.

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

              uid        = "UID" uidparam ":" text CRLF

              uidparam   = *(";" xparam)

            Example: The following is an example of this property:

              UID:19960401T080045Z-4000F192713-0052@host1.com

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
`Uid()` Default constructor.
`Uid(ParameterList aList, String aValue)`
`Uid(String aValue)`

### Method Summary

Methods
`String` `getValue()`
`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

`copy, 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

#### Uid

    public Uid()

Default constructor.

#### Uid

    public Uid(String aValue)

Parameters:
  `aValue` - a value string for this component

#### Uid

    public Uid(ParameterList aList,
       String aValue)

Parameters:
  `aList` - a list of parameters for this component
  `aValue` - a value string for this component

### Method Detail

#### setValue

    public final void setValue(String aValue)

Sets the current value of the property.

Specified by:
  `setValue` in class `Property`
Parameters:
  `aValue` - a string representation of the property value

#### getValue

    public final String getValue()

Specified by:
  `getValue` in class `Content`
Returns:
  the content value

#### 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