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 }