All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jfxtras.icalendarfx.properties.component.relationship.Attendee Maven / Gradle / Ivy

The newest version!
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:
  • The following is an example of this property used for specifying multiple attendees to an event:
  • 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:
  • The following is an example of this property's use when another calendar user is acting on behalf of the "Attendee":

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; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy