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    
024    package microsoft.exchange.webservices.data.core.service.schema;
025    
026    import microsoft.exchange.webservices.data.attribute.Schema;
027    import microsoft.exchange.webservices.data.core.XmlElementNames;
028    import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
029    import microsoft.exchange.webservices.data.core.enumeration.property.LegacyFreeBusyStatus;
030    import microsoft.exchange.webservices.data.core.enumeration.service.MeetingRequestType;
031    import microsoft.exchange.webservices.data.core.enumeration.property.PropertyDefinitionFlags;
032    import microsoft.exchange.webservices.data.property.definition.GenericPropertyDefinition;
033    import microsoft.exchange.webservices.data.property.definition.PropertyDefinition;
034    
035    import java.util.EnumSet;
036    
037    /**
038     * Represents the schema for meeting request.
039     */
040    @Schema
041    public 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    }