jfxtras.icalendarfx.properties.component.relationship.Attendee Maven / Gradle / Ivy
package jfxtras.icalendarfx.properties.component.relationship;
import java.net.URI;
import jfxtras.icalendarfx.components.VAlarm;
import jfxtras.icalendarfx.components.VEvent;
import jfxtras.icalendarfx.components.VFreeBusy;
import jfxtras.icalendarfx.components.VJournal;
import jfxtras.icalendarfx.components.VTodo;
import jfxtras.icalendarfx.parameters.CalendarUser;
import jfxtras.icalendarfx.parameters.CommonName;
import jfxtras.icalendarfx.parameters.Delegatees;
import jfxtras.icalendarfx.parameters.Delegators;
import jfxtras.icalendarfx.parameters.DirectoryEntry;
import jfxtras.icalendarfx.parameters.GroupMembership;
import jfxtras.icalendarfx.parameters.Language;
import jfxtras.icalendarfx.parameters.NonStandardParameter;
import jfxtras.icalendarfx.parameters.ParticipationRole;
import jfxtras.icalendarfx.parameters.ParticipationStatus;
import jfxtras.icalendarfx.parameters.RSVP;
import jfxtras.icalendarfx.parameters.SentBy;
import jfxtras.icalendarfx.properties.component.relationship.Attendee;
import jfxtras.icalendarfx.properties.component.relationship.PropertyBaseAttendee;
/**
* 3.8.4.1. Attendee
Property Name: ATTENDEE
Purpose: This property defines an "Attendee" within a calendar
component.
Value Type: CAL-ADDRESS
Property Parameters: IANA, {@link NonStandardParameter non-standard},
{@link Language language}, {@link CalendarUser calendar user type},
{@link GroupMembership group or list membership}, {@link ParticipationRole participation role},
{@link ParticipationStatus participation status}, {@link RSVP RSVP expectation},
{@link Delegatees delegatee}, {@link Delegators delegator}, {@link SentBy sent by},
{@link CommonName common name}, or {@link DirectoryEntry directory entry reference} property parameters can be
specified on this property.
Conformance: This property MUST be specified in an iCalendar object
that specifies a group-scheduled calendar entity. This property
MUST NOT be specified in an iCalendar object when publishing the
calendar information (e.g., NOT in an iCalendar object that
specifies the publication of a calendar user's busy time, event,
to-do, or journal). This property is not specified in an
iCalendar object that specifies only a time zone definition or
that defines calendar components that are not group-scheduled
components, but are components only on a single user's calendar.
Description: This property MUST only be specified within calendar
components to specify participants, non-participants, and the
chair of a group-scheduled calendar entity. The property is
specified within an "EMAIL" category of the {@link VAlarm VALARM} calendar
component to specify an email address that is to receive the email
type of iCalendar alarm.
The property parameter {@link CommonName CN} is for the common or displayable name
associated with the calendar address; {@link ParticipationRole ROLE}, for the intended
role that the attendee will have in the calendar component;
{@link ParticipationStatus PARTSTAT}, for the status of the attendee's participation;
{@link RSVP}, for indicating whether the favor of a reply is requested;
{@link CalendarUser CUTYPE, to indicate the type of calendar user; {@link GroupMembership MEMBER}, to
indicate the groups that the attendee belongs to; {@link Delegatees DELEGATED-TO},
to indicate the calendar users that the original request was
delegated to; and {@link Delegators DELEGATED-FROM}, to indicate whom the request
was delegated from; {@link SentBy SENT-BY}, to indicate whom is acting on
behalf of the {@link Attendee ATTENDEE}; and {@link DirectoryEntry DIR}, to indicate the URI that
points to the directory information corresponding to the attendee.
These property parameters can be specified on an {@link Attendee ATTENDEE}
property in either a {@link VEvent VEVENT}, {@link VTodo VTODO}, or {@link VJournal VJOURNAL} calendar
component. They MUST NOT be specified in an {@link Attendee ATTENDEE} property
in a {@link VFreeBusy VFREEBUSY} or {@link VAlarm VALARM} calendar component. If the
{@link Language LANGUAGE} property parameter is specified, the identified
language applies to the {@link CommonName CN} parameter.
A recipient delegated a request MUST inherit the {@link RSVP} and {@link ParticipationRole ROLE}
values from the attendee that delegated the request to them.
Multiple attendees can be specified by including multiple
{@link Attendee ATTENDEE} properties within the calendar component.
Format Definition: This property is defined by the following notation:
- attendee
- "ATTENDEE" attparam ":" cal-address CRLF
- attparam
- The following are OPTIONAL, but MUST NOT occur more than once.
- ";" {@link CalendarUser Calendar user type}
- ";" {@link Delegators}
- ";" {@link Delegatees}
- ";" {@link CommonName Common name}
- ";" {@link DirectoryEntry Directory entry}
- ";" {@link GroupMembership Group or list membership}
- ";" {@link Language Language for text}
- ";" {@link RSVP}
- ";" {@link ParticipationRole Participation role}
- ";" {@link ParticipationStatus Participation status}
- ";" {@link SentBy Sent by}
- The following are OPTIONAL, and MAY occur more than once.
- other-param
- ";" {@link NonStandardParameter}
- ";" {@link IANAParameter}
Example: The following is an example of this property:
- The following are examples of this property's use for a to-do:
- ATTENDEE;MEMBER="mailto:[email protected]":mailto:[email protected]
- ATTENDEE;DELEGATED-FROM="mailto:[email protected]":mailto:[email protected]
- The following is an example of this property used for specifying multiple attendees to an event:
- ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;CN=Henry Cabot:mailto:[email protected]
- ATTENDEE;ROLE=REQ-PARTICIPANT;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:[email protected]
- The following is an example of this property with a URI to the directory information associated with the attendee:
- ATTENDEE;CN=John Smith;DIR="ldap://example.com:6666/o=ABC%20Industries,c=US???(cn=Jim%20Dolittle)":mailto:[email protected]
- The following is an example of this property with "delegatee" and "delegator" information for an event:
- ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=TENTATIVE;DELEGATED-FROM="mailto:[email protected]";CN=Henry Cabot:mailto:[email protected]
- ATTENDEE;ROLE=NON-PARTICIPANT;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]";CN=The Big Cheese:mailto:[email protected]
- ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=Jane Doe:mailto:[email protected]
- The following is an example of this property's use when another calendar user is acting on behalf of the "Attendee":
- ATTENDEE;SENT-BY=mailto:[email protected];CN=John Smith:mailto:[email protected]
RFC 5545 iCalendar September 2009
* @author David Bal
*/
public class Attendee extends PropertyBaseAttendee
{
/** Create new Attendee with property value set to input parameter */
public Attendee(URI value)
{
super(value);
}
/** Create deep copy of source Attendee */
public Attendee(Attendee source)
{
super(source);
}
/** Create default Attendee with no value set */
public Attendee()
{
super();
}
/** Create new Attendee by parsing unfolded calendar content */
public static Attendee parse(String content)
{
Attendee property = Attendee.parse(new Attendee(), content);
URI.class.cast(property.getValue()); // ensure value class type matches parameterized type
return property;
}
}