001/*
002 * The MIT License
003 * Copyright (c) 2012 Microsoft Corporation
004 *
005 * Permission is hereby granted, free of charge, to any person obtaining a copy
006 * of this software and associated documentation files (the "Software"), to deal
007 * in the Software without restriction, including without limitation the rights
008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
009 * copies of the Software, and to permit persons to whom the Software is
010 * furnished to do so, subject to the following conditions:
011 *
012 * The above copyright notice and this permission notice shall be included in
013 * all copies or substantial portions of the Software.
014 *
015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
021 * THE SOFTWARE.
022 */
023
024package microsoft.exchange.webservices.data.core.service.schema;
025
026import microsoft.exchange.webservices.data.attribute.Schema;
027import microsoft.exchange.webservices.data.core.XmlElementNames;
028import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
029import microsoft.exchange.webservices.data.core.enumeration.property.LegacyFreeBusyStatus;
030import microsoft.exchange.webservices.data.core.enumeration.service.MeetingRequestType;
031import microsoft.exchange.webservices.data.core.enumeration.property.PropertyDefinitionFlags;
032import microsoft.exchange.webservices.data.property.definition.GenericPropertyDefinition;
033import microsoft.exchange.webservices.data.property.definition.PropertyDefinition;
034
035import java.util.EnumSet;
036
037/**
038 * Represents the schema for meeting request.
039 */
040@Schema
041public class MeetingRequestSchema extends MeetingMessageSchema {
042
043  /**
044   * Field URIs for MeetingRequest.
045   */
046  private static interface FieldUris {
047
048    /**
049     * The Meeting request type.
050     */
051    String MeetingRequestType = "meetingRequest:MeetingRequestType";
052
053    /**
054     * The Intended free busy status.
055     */
056    String IntendedFreeBusyStatus = "meetingRequest:IntendedFreeBusyStatus";
057  }
058
059
060  /**
061   * Defines the MeetingRequestType property.
062   */
063  public static final PropertyDefinition MeetingRequestType =
064      new GenericPropertyDefinition<microsoft.exchange.webservices.data.core.enumeration.service.MeetingRequestType>(
065          MeetingRequestType.class,
066          XmlElementNames.MeetingRequestType, FieldUris.MeetingRequestType,
067          ExchangeVersion.Exchange2007_SP1);
068
069  /**
070   * Defines the IntendedFreeBusyStatus property.
071   */
072  public static final PropertyDefinition IntendedFreeBusyStatus =
073      new GenericPropertyDefinition<microsoft.exchange.webservices.data.core.enumeration.property.LegacyFreeBusyStatus>(
074          LegacyFreeBusyStatus.class,
075          XmlElementNames.IntendedFreeBusyStatus,
076          FieldUris.IntendedFreeBusyStatus, EnumSet
077          .of(PropertyDefinitionFlags.CanFind),
078          ExchangeVersion.Exchange2007_SP1);
079
080  /**
081   * Defines the Start property.
082   */
083  public static final PropertyDefinition Start = AppointmentSchema.Start;
084
085  /**
086   * Defines the End property.
087   */
088  public static final PropertyDefinition End = AppointmentSchema.End;
089
090  /**
091   * Defines the OriginalStart property.
092   */
093  public static final PropertyDefinition OriginalStart =
094      AppointmentSchema.OriginalStart;
095
096  /**
097   * Defines the IsAllDayEvent property.
098   */
099  public static final PropertyDefinition IsAllDayEvent =
100      AppointmentSchema.IsAllDayEvent;
101
102  /**
103   * Defines the LegacyFreeBusyStatus property.
104   */
105  public static final PropertyDefinition LegacyFreeBusyStatus =
106      AppointmentSchema.LegacyFreeBusyStatus;
107
108  /**
109   * Defines the Location property.
110   */
111  public static final PropertyDefinition Location =
112      AppointmentSchema.Location;
113
114  /**
115   * Defines the When property.
116   */
117  public static final PropertyDefinition When = AppointmentSchema.When;
118
119  /**
120   * Defines the IsMeeting property.
121   */
122  public static final PropertyDefinition IsMeeting =
123      AppointmentSchema.IsMeeting;
124
125  /**
126   * Defines the IsCancelled property.
127   */
128  public static final PropertyDefinition IsCancelled =
129      AppointmentSchema.IsCancelled;
130
131  /**
132   * Defines the IsRecurring property.
133   */
134  public static final PropertyDefinition IsRecurring =
135      AppointmentSchema.IsRecurring;
136
137  /**
138   * Defines the MeetingRequestWasSent property.
139   */
140  public static final PropertyDefinition MeetingRequestWasSent =
141      AppointmentSchema.MeetingRequestWasSent;
142
143  /**
144   * Defines the AppointmentType property.
145   */
146  public static final PropertyDefinition AppointmentType =
147      AppointmentSchema.AppointmentType;
148
149  /**
150   * Defines the MyResponseType property.
151   */
152  public static final PropertyDefinition MyResponseType =
153      AppointmentSchema.MyResponseType;
154
155  /**
156   * Defines the Organizer property.
157   */
158  public static final PropertyDefinition Organizer =
159      AppointmentSchema.Organizer;
160
161  /**
162   * Defines the RequiredAttendees property.
163   */
164  public static final PropertyDefinition RequiredAttendees =
165      AppointmentSchema.RequiredAttendees;
166
167  /**
168   * Defines the OptionalAttendees property.
169   */
170  public static final PropertyDefinition OptionalAttendees =
171      AppointmentSchema.OptionalAttendees;
172
173  /**
174   * Defines the Resources property.
175   */
176  public static final PropertyDefinition Resources =
177      AppointmentSchema.Resources;
178
179  /**
180   * Defines the ConflictingMeetingCount property.
181   */
182  public static final PropertyDefinition ConflictingMeetingCount =
183      AppointmentSchema.ConflictingMeetingCount;
184
185  /**
186   * Defines the AdjacentMeetingCount property.
187   */
188  public static final PropertyDefinition AdjacentMeetingCount =
189      AppointmentSchema.AdjacentMeetingCount;
190
191  /**
192   * Defines the ConflictingMeetings property.
193   */
194  public static final PropertyDefinition ConflictingMeetings =
195      AppointmentSchema.ConflictingMeetings;
196
197  /**
198   * Defines the AdjacentMeetings property.
199   */
200  public static final PropertyDefinition AdjacentMeetings =
201      AppointmentSchema.AdjacentMeetings;
202
203  /**
204   * Defines the Duration property.
205   */
206  public static final PropertyDefinition Duration =
207      AppointmentSchema.Duration;
208
209  /**
210   * Defines the TimeZone property.
211   */
212  public static final PropertyDefinition TimeZone =
213      AppointmentSchema.TimeZone;
214
215  /**
216   * Defines the AppointmentReplyTime property.
217   */
218  public static final PropertyDefinition AppointmentReplyTime =
219      AppointmentSchema.AppointmentReplyTime;
220
221  /**
222   * Defines the AppointmentSequenceNumber property.
223   */
224  public static final PropertyDefinition AppointmentSequenceNumber =
225      AppointmentSchema.AppointmentSequenceNumber;
226
227  /**
228   * Defines the AppointmentState property.
229   */
230  public static final PropertyDefinition AppointmentState =
231      AppointmentSchema.AppointmentState;
232
233  /**
234   * Defines the Recurrence property.
235   */
236  public static final PropertyDefinition Recurrence =
237      AppointmentSchema.Recurrence;
238
239  /**
240   * Defines the FirstOccurrence property.
241   */
242  public static final PropertyDefinition FirstOccurrence =
243      AppointmentSchema.FirstOccurrence;
244  /**
245   * Defines the LastOccurrence property.
246   */
247  public static final PropertyDefinition LastOccurrence =
248      AppointmentSchema.LastOccurrence;
249
250  /**
251   * Defines the ModifiedOccurrences property.
252   */
253  public static final PropertyDefinition ModifiedOccurrences =
254      AppointmentSchema.ModifiedOccurrences;
255
256  /**
257   * Defines the Duration property.
258   */
259  public static final PropertyDefinition DeletedOccurrences =
260      AppointmentSchema.DeletedOccurrences;
261
262  /**
263   * Defines the MeetingTimeZone property.
264   */
265  static final PropertyDefinition MeetingTimeZone =
266      AppointmentSchema.MeetingTimeZone;
267
268  /**
269   * Defines the StartTimeZone property.
270   */
271  public static final PropertyDefinition StartTimeZone =
272      AppointmentSchema.StartTimeZone;
273
274  /**
275   * Defines the EndTimeZone property.
276   */
277  public static final PropertyDefinition EndTimeZone =
278      AppointmentSchema.EndTimeZone;
279
280  /**
281   * Defines the ConferenceType property.
282   */
283  public static final PropertyDefinition ConferenceType =
284      AppointmentSchema.ConferenceType;
285
286  /**
287   * Defines the AllowNewTimeProposal property.
288   */
289  public static final PropertyDefinition AllowNewTimeProposal =
290      AppointmentSchema.AllowNewTimeProposal;
291
292  /**
293   * Defines the IsOnlineMeeting property.
294   */
295  public static final PropertyDefinition IsOnlineMeeting =
296      AppointmentSchema.IsOnlineMeeting;
297
298  /**
299   * Defines the MeetingWorkspaceUrl property.
300   */
301  public static final PropertyDefinition MeetingWorkspaceUrl =
302      AppointmentSchema.MeetingWorkspaceUrl;
303
304  /**
305   * Defines the NetShowUrl property.
306   */
307  public static final PropertyDefinition NetShowUrl =
308      AppointmentSchema.NetShowUrl;
309
310  /**
311   * This must be after the declaration of property definitions.
312   */
313  public static final MeetingRequestSchema Instance =
314      new MeetingRequestSchema();
315
316  /**
317   * Registers property.
318   * <p/>
319   * IMPORTANT NOTE: PROPERTIES MUST BE REGISTERED IN SCHEMA ORDER (i.e. the
320   * same order as they are defined in types.xsd)
321   */
322  @Override
323  protected void registerProperties() {
324    super.registerProperties();
325
326    this.registerProperty(MeetingRequestType);
327    this.registerProperty(IntendedFreeBusyStatus);
328
329    this.registerProperty(Start);
330    this.registerProperty(End);
331    this.registerProperty(OriginalStart);
332    this.registerProperty(IsAllDayEvent);
333    this.registerProperty(LegacyFreeBusyStatus);
334    this.registerProperty(Location);
335    this.registerProperty(When);
336    this.registerProperty(IsMeeting);
337    this.registerProperty(IsCancelled);
338    this.registerProperty(IsRecurring);
339    this.registerProperty(MeetingRequestWasSent);
340    this.registerProperty(AppointmentType);
341    this.registerProperty(MyResponseType);
342    this.registerProperty(Organizer);
343    this.registerProperty(RequiredAttendees);
344    this.registerProperty(OptionalAttendees);
345    this.registerProperty(Resources);
346    this.registerProperty(ConflictingMeetingCount);
347    this.registerProperty(AdjacentMeetingCount);
348    this.registerProperty(ConflictingMeetings);
349    this.registerProperty(AdjacentMeetings);
350    this.registerProperty(Duration);
351    this.registerProperty(TimeZone);
352    this.registerProperty(AppointmentReplyTime);
353    this.registerProperty(AppointmentSequenceNumber);
354    this.registerProperty(AppointmentState);
355    this.registerProperty(Recurrence);
356    this.registerProperty(FirstOccurrence);
357    this.registerProperty(LastOccurrence);
358    this.registerProperty(ModifiedOccurrences);
359    this.registerProperty(DeletedOccurrences);
360    this.registerInternalProperty(MeetingTimeZone);
361    this.registerProperty(StartTimeZone);
362    this.registerProperty(EndTimeZone);
363    this.registerProperty(ConferenceType);
364    this.registerProperty(AllowNewTimeProposal);
365    this.registerProperty(IsOnlineMeeting);
366    this.registerProperty(MeetingWorkspaceUrl);
367    this.registerProperty(NetShowUrl);
368  }
369
370  /**
371   * Initializes a new instance of the class.
372   */
373  protected MeetingRequestSchema() {
374    super();
375  }
376}