Overview | Package | Class | Tree | Deprecated | Index | Help
| Compoze Software, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

- `ICalendarItem.START_TIME`
- `ICalendarItem.END_TIME`
- `ICalendarItem.IS_RECURRING`
- `IExchangeCalendarItem.RECURRENCE_PATTERN`
- `IExchangeCalendarItem.TIMEZONE_INFO`

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

This is an example of how to create an appointment, set properties, and retrieve it

Sample code:

    /**
     * The <code>createAppointment</code> method demonstrates how to create an
     * appointment with either the MAPI or the WebDAV Exchange providers. The
     * appointment has several properties set and is then saved.
     *
     * @throws  CollaborationException  if the session factory could not instantiate
     *          a session with the given parameters, or if there was an error
     *          retrieving folders, setting properties, or saving the appointment.
     */
    public  void    createAppointment
    (
    )
    throws  CollaborationException
        {
        // setup the session
        Properties p = new Properties ();
        p.setProperty (IExchangeSession.PROP_PROVIDER, IWebdavSession.INTERNAL_NAME);
        p.setProperty (IExchangeSession.PROP_EXCHANGE_SERVER, "server");
        p.setProperty (IExchangeSession.PROP_USER_DOMAIN, "domain");
        p.setProperty (IExchangeSession.PROP_USER_USERNAME, "username");
        p.setProperty (IExchangeSession.PROP_USER_PASSWORD, "password");

        // create and open the session
        IExchangeSession session = (IExchangeSession)SessionFactory.createSession(p);
        session.open();
        session.login ();

        IRootContainer root = session.getDefaultRootContainer ();

        // Get a handle to the calendar folder
        IExchangeCalendarContainer calendar = null;
        calendar = (IExchangeCalendarContainer)session.getDefaultContainer(
            DefaultContainerClassEnum.CALENDAR );

        // add a new appointment to the calendar, but do not commit it yet
        // the item will be of the type IExchangeAppointment.CLASS
        // it is possible to use other types, such as IAppointment.CLASS,
        // however it is always best to use the most specific type when possible
        IExchangeAppointment appt = null;
        appt = (IExchangeAppointment)calendar.add( IExchangeAppointment.CLASS, false );

        // set the subject
        appt.setSubject( "Compoze Software Test Appointment" );

        // set the body
        // the HTML body could also be set with HTML instead
        appt.setBody( "Body of the appointment." );

        Calendar cal = Calendar.getInstance();
        cal.set( Calendar.HOUR_OF_DAY, 10 );
        cal.set( Calendar.MINUTE, 0 );
        cal.set( Calendar.SECOND, 0 );
        cal.set( Calendar.MILLISECOND, 0 );

        Date start = cal.getTime();
        cal.add( Calendar.MINUTE, 45 );
        Date end = cal.getTime();

        // create the appointment from 10am to 10:45am
        appt.setDates( start, end );

        // set a location
        appt.setLocation( "Compoze Software HQ" );

        // commit the appointment
        // it will have a default busy status of BUSY
        appt.commit();

        // retrieve the appointment with a few properties
        Key[] keys = new Key[]
            {
            IExchangeAppointment.START_TIME, IExchangeAppointment.END_TIME,
            IExchangeAppointment.RECURRENCE_PATTERN,
            IExchangeAppointment.IS_RECURRING
            };

        FetchProfile fetchProfile = new FetchProfile( keys );
        appt = (IExchangeAppointment)root.getItemByID( appt.getID(), fetchProfile );

        // let's update some fields
        // we'll make this an all day event
        appt.setAllDayEvent( true );

        // let's set the busy status to OOF
        appt.setBusyStatus( ExchangeBusyStatusEnum.OUT_OF_OFFICE );

        // save changes
        appt.commit();

        // logout and close
        session.logout ();
        session.close();
        }

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 Key` | `INSTANCE_TYPE` The key representing the instance type.
`static int` | `KEYID_ASSOCIATED_MASTER` The `int` ID for the `ASSOCIATED_MASTER` key.
`static int` | `KEYID_INSTANCE_TYPE` The `int` ID for the `INSTANCE_TYPE` 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.
`InstanceType` | `getInstanceType()` Gets the instance type of the 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, getMeetingStatus, getRecurrencePattern, isRecurring`

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.

### KEYID_INSTANCE_TYPE

    public static final int KEYID_INSTANCE_TYPE

  The `int` ID for the `INSTANCE_TYPE` 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.

### INSTANCE_TYPE

    public static final Key INSTANCE_TYPE

  The key representing the instance type. 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 (not `null`).
  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()`

### getInstanceType

    public InstanceType getInstanceType()
                                 throws CollaborationException

  Gets the instance type of the appointment.
  Returns:
    the instance type
  Throws:
    `CollaborationException` - if there was an error getting the type.
  See Also:
    `INSTANCE_TYPE`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Compoze Software, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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