Compoze Software, Inc.

com.compoze.collab.exchange
Interface IExchangeAppointment

All Superinterfaces:
IAppointment, IAttachmentSupport, ICalendarItem, IExchangeCalendarItem, IExchangeItem, IGroupwareItem, IItem, IMessagingItem, java.io.Serializable
All Known Subinterfaces:
IMapiAppointment

public interface IExchangeAppointment
extends IAppointment, IExchangeCalendarItem

This interface is used to represent appointments in exchange. Operations for instances of IExchangeAppointment require at least the following properties:

These properties are required due to inter-dependencies with all day events, recurrence patterns and start/end times.


Field Summary
static Key ASSOCIATED_MASTER
          The key representing the ID of the master appointment associated with an instance.
static ItemClass CLASS
          The ItemClass that represents an Exchange appointment.
static int KEYID_ASSOCIATED_MASTER
          The int ID for the ASSOCIATED_MASTER key.
static int KEYID_ORGANIZER_NAME
          The int ID for the ORGANIZER_NAME key.
static int KEYID_SENT_DATE
          The int ID for the SENT_DATE key.
static Key ORGANIZER_NAME
          The key representing the display name of the organizer for this appointment.
static Key SENT_DATE
          The key representing the date that the meeting was sent.
 
Fields inherited from interface com.compoze.collab.groupware.ICalendarItem
BUSY_STATUS, DURATION, END_TIME, IS_ALL_DAY, IS_RECURRING, KEYID_BUSY_STATUS, KEYID_DURATION, KEYID_END_TIME, KEYID_IS_ALL_DAY, KEYID_IS_RECURRING, KEYID_LOCATION, KEYID_START_TIME, LOCATION, START_TIME
 
Fields inherited from interface com.compoze.collab.groupware.IGroupwareItem
CATEGORIES, DATE_CREATED, DATE_LAST_MODIFIED, IMPORTANCE, KEYID_CATEGORIES, KEYID_DATE_CREATED, KEYID_DATE_LAST_MODIFIED, KEYID_IMPORTANCE, KEYID_SIZE, KEYID_SUBJECT, SIZE, SUBJECT
 
Fields inherited from interface com.compoze.collab.messaging.IMessagingItem
BODY, BODY_HTML, KEYID_BODY, KEYID_BODY_HTML
 
Fields inherited from interface com.compoze.collab.IItem
ID, ITEM_CLASS, KEYID_ID, KEYID_ITEM_CLASS, KEYID_PARENT_ID, MINIMUM_ITEM_KEYS, PARENT_ID
 
Fields inherited from interface com.compoze.collab.exchange.IExchangeCalendarItem
ASSOCIATED_APPOINTMENT_LINK, ASSOCIATED_INSTANCE_LINK, IS_RESPONSE_REQUESTED, KEYID_ASSOCIATED_APPOINTMENT_LINK, KEYID_ASSOCIATED_INSTANCE_LINK, KEYID_IS_RESPONSE_REQUESTED, KEYID_MEETING_RESPONSE_STATUS, KEYID_MEETING_STATUS, KEYID_RECURRENCE_PATTERN, KEYID_REMINDER_MINUTES_BEFORE_START, KEYID_REPLY_TIME, KEYID_TIMEZONE_INFO, KEYID_TIMEZONE_STRING, MEETING_RESPONSE_STATUS, MEETING_STATUS, RECURRENCE_PATTERN, REMINDER_MINUTES_BEFORE_START, REPLY_TIME, TIMEZONE_INFO, TIMEZONE_STRING
 
Fields inherited from interface com.compoze.collab.exchange.IExchangeItem
BODY_RTF, CONTACT_NAMES, CREATOR_ENTRYID, FLAG, FLAG_REMIND_BY, FLAG_TEXT, HAS_REMINDER, HIDE_ATTACHMENTS, ICON_INDEX, IS_HIDDEN, KEYID_BODY_RTF, KEYID_CONTACT_NAMES, KEYID_CREATOR_ENTRYID, KEYID_FLAG, KEYID_FLAG_REMIND_BY, KEYID_FLAG_TEXT, KEYID_HAS_REMINDER, KEYID_HIDE_ATTACHMENTS, KEYID_ICON_INDEX, KEYID_IS_HIDDEN, KEYID_MILEAGE, KEYID_NORMALIZED_SUBJECT, KEYID_PRIORITY, KEYID_SENSITIVITY, KEYID_SUBJECT_PREFIX, MILEAGE, NORMALIZED_SUBJECT, PRIORITY, SENSITIVITY, SUBJECT_PREFIX
 
Fields inherited from interface com.compoze.collab.IAttachmentSupport
ATTACHMENTS, HAS_ATTACHMENT, KEYID_ATTACHMENTS, KEYID_HAS_ATTACHMENT
 
Method Summary
 IMeetingCancellation cancel()
          Cancels the appointment, if isMeeting returns true.
 IMeetingCancellation cancel(IMailContainer container)
          Cancels the appointment, if isMeeting returns true.
 IMeetingRequest createMeetingRequest(IMailContainer container)
          Creates a meeting request for this appointment.
 IMailRecipient[] getOptionalAttendees()
          Gets the invitees of a meeting that are optional to attend.
 IExchangeAddressEntry getOrganizer()
          Gets the organizer of the appointment.
 java.lang.String getOrganizerName()
          Gets the display name of the organizer for an appointment.
 IMailRecipient[] getRequiredAttendees()
          Gets the invitees of a meeting that are required to attend.
 IMailRecipient[] getResources()
          Gets the resources that are scheduled to be booked for a meeting.
 java.util.Date getSentDate()
          Gets the date that this meeting was sent to the attendees.
 IExchangeAppointment getSeries()
          Gets the 'series' appointment for this appointment, if it is recurring.
 IExchangeAppointment getSeries(FetchProfile profile)
          Gets the 'series' appointment for this appointment, if it is recurring.
 boolean isMeeting()
          Gets whether this appointment is a meeting.
 boolean isOrganizer()
          Gets if the Exchange account associated with the ISession is the creator, also known as the organizer, of a meeting.
 boolean isSpanning()
          Gets whether this appointment is spanning.
 void setAllDayEvent(boolean bAllDayEvent)
          Setting an Exchange appointment to an all day event will use the existing start and end dates.
 void setRecurrencePattern(AppointmentRecurrencePattern pattern, ExchangeTimeZone timezone)
          Sets the recurrence pattern on the appointment.
 
Methods inherited from interface com.compoze.collab.groupware.IAppointment
cancel, setBusyStatus, setDates, setLocation
 
Methods inherited from interface com.compoze.collab.groupware.ICalendarItem
getBusyStatus, getDuration, getEndTime, getLocation, getStartTime, isAllDayEvent, isRecurring
 
Methods inherited from interface com.compoze.collab.groupware.IGroupwareItem
getBodyHtml, getBodyHtml, getCategories, getDateCreated, getDateLastModified, getImportance, getNormalizedSubject, getSize, getSubject, getSubject, getSubjectPrefix, setBodyHtml, setCategories, setImportance, setSubject
 
Methods inherited from interface com.compoze.collab.messaging.IMessagingItem
getBody, setBody
 
Methods inherited from interface com.compoze.collab.IItem
commit, containsKey, containsKey, copyProperties, copyTo, delete, fetchProperties, getAttribute, getEnum, getID, getInputStream, getItemClass, getOutputStream, getParent, getParent, getParentID, getProperties, getProperties, getProperties, getProperty, getProperty, getProperty, getReader, getRootContainer, getSession, getWriter, isMissing, moveTo, removeAttribute, removeProperty, setAttribute, setProperties, setProperty, setProperty, setProperty
 
Methods inherited from interface com.compoze.collab.exchange.IExchangeCalendarItem
getExchangeTimeZone, getRecurrencePattern
 
Methods inherited from interface com.compoze.collab.exchange.IExchangeItem
getBodyRtf, getContactNames, getFlagStatus, getFlagText, getHideAttachments, getMileage, getPriority, getSensitivity, getSubjectPrefix, isHidden, setBodyRtf, setContactNames, setFlagStatus, setFlagText, setHideAttachments, setMileage, setPriority, setSensitivity, setSubjectPrefix
 
Methods inherited from interface com.compoze.collab.IAttachmentSupport
addAttachment, getAttachment, getAttachmentCount, getAttachments, hasAttachment
 

Field Detail

KEYID_ASSOCIATED_MASTER


public static final int KEYID_ASSOCIATED_MASTER
The int ID for the ASSOCIATED_MASTER key.

KEYID_ORGANIZER_NAME


public static final int KEYID_ORGANIZER_NAME
The int ID for the ORGANIZER_NAME key.

KEYID_SENT_DATE


public static final int KEYID_SENT_DATE
The int ID for the SENT_DATE key.

ASSOCIATED_MASTER


public static final Key ASSOCIATED_MASTER
The key representing the ID of the master appointment associated with an instance.

ORGANIZER_NAME


public static final Key ORGANIZER_NAME
The key representing the display name of the organizer for this appointment. This key is read-only.

SENT_DATE


public static final Key SENT_DATE
The key representing the date that the meeting was sent. This key is read-only.

CLASS


public static final ItemClass CLASS
The ItemClass that represents an Exchange appointment.
Method Detail

cancel


public IMeetingCancellation cancel()
                            throws CollaborationException
Cancels the appointment, if isMeeting returns true. Creates a meeting cancellation in the default drafts folder.
Returns:
a cancellation notice that can be sent to invitees of the meeting.
Throws:
CollaborationException - if there was an error canceling the appointment
See Also:
isMeeting(), IExchangeCalendarItem.ASSOCIATED_APPOINTMENT_LINK

cancel


public IMeetingCancellation cancel(IMailContainer container)
                            throws CollaborationException
Cancels the appointment, if isMeeting returns true. Creates a meeting cancellation in the specified folder. The appointment is not removed from the calendar after this method is finished executing. To remove it from the calendar, delete it manually.
Parameters:
container - the container to write the IMeetingCancellation to.
Returns:
a cancellation notice that can be sent to invitees of the meeting.
Throws:
CollaborationException - if there was an error canceling the appointment
See Also:
isMeeting(), IMessage.RECIPIENTS, IExchangeCalendarItem.ASSOCIATED_APPOINTMENT_LINK, IItem.delete()

isMeeting


public boolean isMeeting()
                  throws CollaborationException
Gets whether this appointment is a meeting.
Returns:
true if this appointment is a meeting, false otherwise.
Throws:
CollaborationException - if there was an error determining if this appointment is a meeting
See Also:
IExchangeCalendarItem.MEETING_STATUS

setRecurrencePattern


public void setRecurrencePattern(AppointmentRecurrencePattern pattern,
                                 ExchangeTimeZone timezone)
                          throws CollaborationException
Sets the recurrence pattern on the appointment. NOTE: Setting the pattern will invalidate setting the start or end time for the appointment, as well as replace any pattern already existing on the appointment.

If setting the pattern to AppointmentRecurrencePattern.NONE, the IS_RECURRING becomes false, otherwise, IS_RECURRING becomes true.

Parameters:
pattern - the pattern to set. A value of null implies AppointmentRecurrencePattern.NONE.
timezone - the exchange timezone (not null)
Throws:
CollaborationException - if there was an error setting the pattern

isSpanning


public boolean isSpanning()
                   throws CollaborationException
Gets whether this appointment is spanning. Spanning appointments have a duration of at least 24 hours. However, appointments that are exactly 24 hours long from midnight are considered as All Day Events.
Returns:
true if this appointment has a duration of at least 24 hours, but is not an all day event, false otherwise.
Throws:
CollaborationException - if there was a problem determining if the appointment is spanning.
See Also:
ICalendarItem.DURATION, ICalendarItem.START_TIME

getSeries


public IExchangeAppointment getSeries()
                               throws CollaborationException
Gets the 'series' appointment for this appointment, if it is recurring. Requires the fields in See Also. Uses the default keys for an IExchangeAppointment to fetch the 'series' appointment.
Returns:
the series, or null if the appointment is not recurring.
Throws:
CollaborationException - if there was an error getting the series.
See Also:
ICalendarItem.IS_RECURRING, ASSOCIATED_MASTER

getSeries


public IExchangeAppointment getSeries(FetchProfile profile)
                               throws CollaborationException
Gets the 'series' appointment for this appointment, if it is recurring. Requires the field in See Also.
Parameters:
profile - the fetch profile to get the series.
Returns:
the series, or null if the appointment is not recurring
Throws:
CollaborationException - if there was an error getting the series
See Also:
ICalendarItem.IS_RECURRING, ASSOCIATED_MASTER

createMeetingRequest


public IMeetingRequest createMeetingRequest(IMailContainer container)
                                     throws CollaborationException
Creates a meeting request for this appointment. See See Also section for required keys.
Parameters:
container - the container to create the "draft" meeting request in.
Returns:
a meeting request for this appointment
Throws:
CollaborationException - if there was a problem creating a meeting request for this appointment in the specified folder.
See Also:
ICalendarItem.BUSY_STATUS, IExchangeCalendarItem.ASSOCIATED_APPOINTMENT_LINK

setAllDayEvent


public void setAllDayEvent(boolean bAllDayEvent)
                    throws CollaborationException
Setting an Exchange appointment to an all day event will use the existing start and end dates. Changing an appointment from an all day event will use the start date and set the appointment times from 8:00 AM to 8:30 AM. Specifying start and end dates on different days will force the all day dates for those days.
Specified by:
setAllDayEvent in interface IAppointment
Parameters:
bAllDayEvent - if true, sets this appointment as an All Day Event. If false, then removes the All Day Event flag from this appointment.
Throws:
CollaborationException - if there was a problem setting the all day event flag.
See Also:
ICalendarItem.START_TIME, ICalendarItem.END_TIME

getOrganizer


public IExchangeAddressEntry getOrganizer()
                                   throws CollaborationException
Gets the organizer of the appointment. Retrieving this property could require numerous hits to the Exchange server. It is recommended that this method should be used infrequently. Instead, use the ORGANIZER_NAME field to retrieve the organizer on more than one appointment.

Retriving the organizer is only valid on appointments that are meetings.

Returns:
the address entry of the organizer, or null if this appointment is not a meeting or the organizer could not be found in the GAL.
Throws:
CollaborationException - if there was an error getting the organizer
See Also:
isMeeting()

getOrganizerName


public java.lang.String getOrganizerName()
                                  throws CollaborationException
Gets the display name of the organizer for an appointment. Retriving the organizer name is only valid on appointments that are meetings.
Returns:
the display name of the organizer, or null if this appointment is not a meeting.
Throws:
CollaborationException - if there was an error getting the organizer's name.
See Also:
isMeeting(), ORGANIZER_NAME

isOrganizer


public boolean isOrganizer()
                    throws CollaborationException
Gets if the Exchange account associated with the ISession is the creator, also known as the organizer, of a meeting. This method may impact performance due to the calculations involved and the specific provider being used. Retrieving this property on a non-meeting will return true.
Returns:
true if the current session's Exchange account is the organizer of the meeting or the appointment is not a meeting, false otherwise.
Throws:
CollaborationException - if there was an error retrieving the associated Exchange account or the organizer of the meeting, or the appointment is not a meeting.
See Also:
isMeeting()

getRequiredAttendees


public IMailRecipient[] getRequiredAttendees()
                                      throws CollaborationException
Gets the invitees of a meeting that are required to attend. The IMessage.RECIPIENTS key is required for this method. For some Exchange providers, this key may be an expensive call and should not be used in bulk in order to prevent performance issues.
Returns:
the required attendees of the meeting.
Throws:
CollaborationException - if there was a problem retrieving the required attendees.
See Also:
IMessage.RECIPIENTS, isMeeting()

getOptionalAttendees


public IMailRecipient[] getOptionalAttendees()
                                      throws CollaborationException
Gets the invitees of a meeting that are optional to attend. The IMessage.RECIPIENTS key is required for this method. For some Exchange providers, this key may be an expensive call and should not be used in bulk in order to prevent performance issues.
Returns:
the optional attendees of the meeting.
Throws:
CollaborationException - if there was a problem retrieving the optional attendees.
See Also:
IMessage.RECIPIENTS, isMeeting()

getResources


public IMailRecipient[] getResources()
                              throws CollaborationException
Gets the resources that are scheduled to be booked for a meeting. The IMessage.RECIPIENTS key is required for this method. For some Exchange providers, this key may be an expensive call and should not be used in bulk in order to prevent performance issues.
Returns:
the booked resources of the meeting.
Throws:
CollaborationException - if there was a problem retrieving the resources.
See Also:
IMessage.RECIPIENTS, isMeeting()

getSentDate


public java.util.Date getSentDate()
                           throws CollaborationException
Gets the date that this meeting was sent to the attendees.
Returns:
the date that this meeting was sent, or null if this is not a meeting.
Throws:
CollaborationException - if there was a problem retrieving the sent date.
See Also:
SENT_DATE, isMeeting()

Compoze Software, Inc.

Copyright ©1999-2003 Compoze Software, Inc. All rights reserved.