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

jfxtras.icalendarfx.properties.PropAttendee Maven / Gradle / Ivy

The newest version!
package jfxtras.icalendarfx.properties;

import jfxtras.icalendarfx.parameters.CalendarUser;
import jfxtras.icalendarfx.parameters.Delegatees;
import jfxtras.icalendarfx.parameters.Delegators;
import jfxtras.icalendarfx.parameters.GroupMembership;
import jfxtras.icalendarfx.parameters.ParticipationRole;
import jfxtras.icalendarfx.parameters.ParticipationStatus;
import jfxtras.icalendarfx.parameters.RSVP;
import jfxtras.icalendarfx.properties.PropCalendarUser;
import jfxtras.icalendarfx.properties.component.relationship.PropertyBaseAttendee;

/**
 * Abstract class for Attendee and unknown properties
 * 
 * @author David Bal
 *
 * @param  - subclass
 * 
 * @see PropertyBaseAttendee
 */
public interface PropAttendee extends PropCalendarUser
{
    /**
     * CUTYPE
     * Calendar User Type
     * RFC 5545, 3.2.3, page 16
     * 
     * To identify the type of calendar user specified by the property.
     * 
     * Example:
     * ATTENDEE;CUTYPE=GROUP:mailto:[email protected]
     */
    CalendarUser getCalendarUser();
    void setCalendarUser(CalendarUser calendarUser);  

    /**
     * DELEGATED-FROM
     * Delegators
     * RFC 5545, 3.2.4, page 17
     * 
     * To specify the calendar users that have delegated their
     *    participation to the calendar user specified by the property.
     * 
     * Example:
     * ATTENDEE;DELEGATED-FROM="mailto:[email protected]":mailto:
     *  [email protected]
     */
    Delegators getDelegators();
    void setDelegators(Delegators delegators);

    /**
     * DELEGATED-TO
     * Delegatees
     * RFC 5545, 3.2.5, page 17
     * 
     * To specify the calendar users to whom the calendar user
     *    specified by the property has delegated participation.
     * 
     * Example:
     * ATTENDEE;DELEGATED-TO="mailto:[email protected]","mailto:jqpublic
     *  @example.com":mailto:[email protected]
     * 
     */
    Delegatees getDelegatees();
    void setDelegatees(Delegatees delegatees);
    
    /**
     * MEMBER
     * Group or List Membership
     * RFC 5545, 3.2.11, page 21
     * 
     * To specify the group or list membership of the calendar user specified by the property.
     * 
     * Example:
     * ATTENDEE;MEMBER="mailto:[email protected]","mailto:pr
     *  [email protected]":mailto:[email protected]
     * 
     */
    GroupMembership getGroupMembership();
    void setGroupMembership(GroupMembership groupMembership);
    
    /**
     * RSVP
     * RSVP Expectation
     * RFC 5545, 3.2.17, page 26
     * 
     * To specify whether there is an expectation of a favor of a reply from the calendar user specified by the property value.
     * 
     * Example:
     * ATTENDEE;RSVP=TRUE:mailto:[email protected]
     */
    RSVP getRSVP();
    void setRSVP(RSVP rsvp);
    
    /**
     * PARTSTAT
     * Participation Status
     * RFC 5545, 3.2.12, page 22
     * 
     * To specify the participation role for the calendar user specified by the property.
     * 
     * Example:
     * ATTENDEE;PARTSTAT=DECLINED:mailto:[email protected]
     */
    ParticipationStatus getParticipationStatus();
    void setParticipationStatus(ParticipationStatus participation); 

    /**
     * ROLE
     * Participation Role
     * RFC 5545, 3.2.16, page 25
     * 
     * To specify the participation role for the calendar user specified by the property.
     * 
     * Example:
     * ATTENDEE;ROLE=CHAIR:mailto:[email protected]
     */
    ParticipationRole getParticipationRole();
    void setParticipationRole(ParticipationRole participationRole);
}