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.Importance;
030 import microsoft.exchange.webservices.data.core.enumeration.property.PropertyDefinitionFlags;
031 import microsoft.exchange.webservices.data.core.enumeration.property.Sensitivity;
032 import microsoft.exchange.webservices.data.property.complex.ConversationId;
033 import microsoft.exchange.webservices.data.property.complex.FolderId;
034 import microsoft.exchange.webservices.data.property.complex.ICreateComplexPropertyDelegate;
035 import microsoft.exchange.webservices.data.property.complex.InternetMessageHeaderCollection;
036 import microsoft.exchange.webservices.data.property.complex.ItemId;
037 import microsoft.exchange.webservices.data.property.complex.MessageBody;
038 import microsoft.exchange.webservices.data.property.complex.MimeContent;
039 import microsoft.exchange.webservices.data.property.complex.StringList;
040 import microsoft.exchange.webservices.data.property.complex.UniqueBody;
041 import microsoft.exchange.webservices.data.property.definition.AttachmentsPropertyDefinition;
042 import microsoft.exchange.webservices.data.property.definition.BoolPropertyDefinition;
043 import microsoft.exchange.webservices.data.property.definition.ByteArrayPropertyDefinition;
044 import microsoft.exchange.webservices.data.property.definition.ComplexPropertyDefinition;
045 import microsoft.exchange.webservices.data.property.definition.DateTimePropertyDefinition;
046 import microsoft.exchange.webservices.data.property.definition.EffectiveRightsPropertyDefinition;
047 import microsoft.exchange.webservices.data.property.definition.GenericPropertyDefinition;
048 import microsoft.exchange.webservices.data.property.definition.IntPropertyDefinition;
049 import microsoft.exchange.webservices.data.property.definition.PropertyDefinition;
050 import microsoft.exchange.webservices.data.property.definition.ResponseObjectsPropertyDefinition;
051 import microsoft.exchange.webservices.data.property.definition.StringPropertyDefinition;
052
053 import java.util.EnumSet;
054
055 /**
056 * Represents the schema for generic item.
057 */
058 @Schema
059 public class ItemSchema extends ServiceObjectSchema {
060
061 /**
062 * The Interface FieldUris.
063 */
064 private static interface FieldUris {
065
066 /**
067 * The Item id.
068 */
069 String ItemId = "item:ItemId";
070
071 /**
072 * The Parent folder id.
073 */
074 String ParentFolderId = "item:ParentFolderId";
075
076 /**
077 * The Item class.
078 */
079 String ItemClass = "item:ItemClass";
080
081 /**
082 * The Mime content.
083 */
084 String MimeContent = "item:MimeContent";
085
086 /**
087 * The Attachments.
088 */
089 String Attachments = "item:Attachments";
090
091 /**
092 * The Subject.
093 */
094 String Subject = "item:Subject";
095
096 /**
097 * The Date time received.
098 */
099 String DateTimeReceived = "item:DateTimeReceived";
100
101 /**
102 * The Size.
103 */
104 String Size = "item:Size";
105
106 /**
107 * The Categories.
108 */
109 String Categories = "item:Categories";
110
111 /**
112 * The Has attachments.
113 */
114 String HasAttachments = "item:HasAttachments";
115
116 /**
117 * The Importance.
118 */
119 String Importance = "item:Importance";
120
121 /**
122 * The In reply to.
123 */
124 String InReplyTo = "item:InReplyTo";
125
126 /**
127 * The Internet message headers.
128 */
129 String InternetMessageHeaders = "item:InternetMessageHeaders";
130
131 /**
132 * The Is associated.
133 */
134 String IsAssociated = "item:IsAssociated";
135
136 /**
137 * The Is draft.
138 */
139 String IsDraft = "item:IsDraft";
140
141 /**
142 * The Is from me.
143 */
144 String IsFromMe = "item:IsFromMe";
145
146 /**
147 * The Is resend.
148 */
149 String IsResend = "item:IsResend";
150
151 /**
152 * The Is submitted.
153 */
154 String IsSubmitted = "item:IsSubmitted";
155
156 /**
157 * The Is unmodified.
158 */
159 String IsUnmodified = "item:IsUnmodified";
160
161 /**
162 * The Date time sent.
163 */
164 String DateTimeSent = "item:DateTimeSent";
165
166 /**
167 * The Date time created.
168 */
169 String DateTimeCreated = "item:DateTimeCreated";
170
171 /**
172 * The Body.
173 */
174 String Body = "item:Body";
175
176 /**
177 * The Response objects.
178 */
179 String ResponseObjects = "item:ResponseObjects";
180
181 /**
182 * The Sensitivity.
183 */
184 String Sensitivity = "item:Sensitivity";
185
186 /**
187 * The Reminder due by.
188 */
189 String ReminderDueBy = "item:ReminderDueBy";
190
191 /**
192 * The Reminder is set.
193 */
194 String ReminderIsSet = "item:ReminderIsSet";
195
196 /**
197 * The Reminder minutes before start.
198 */
199 String ReminderMinutesBeforeStart = "item:ReminderMinutesBeforeStart";
200
201 /**
202 * The Display to.
203 */
204 String DisplayTo = "item:DisplayTo";
205
206 /**
207 * The Display cc.
208 */
209 String DisplayCc = "item:DisplayCc";
210
211 /**
212 * The Culture.
213 */
214 String Culture = "item:Culture";
215
216 /**
217 * The Effective rights.
218 */
219 String EffectiveRights = "item:EffectiveRights";
220
221 /**
222 * The Last modified name.
223 */
224 String LastModifiedName = "item:LastModifiedName";
225
226 /**
227 * The Last modified time.
228 */
229 String LastModifiedTime = "item:LastModifiedTime";
230
231 /**
232 * The Web client read form query string.
233 */
234 String WebClientReadFormQueryString =
235 "item:WebClientReadFormQueryString";
236
237 /**
238 * The Web client edit form query string.
239 */
240 String WebClientEditFormQueryString =
241 "item:WebClientEditFormQueryString";
242
243 /**
244 * The Conversation id.
245 */
246 String ConversationId = "item:ConversationId";
247
248 /**
249 * The Unique body.
250 */
251 String UniqueBody = "item:UniqueBody";
252
253 String StoreEntryId = "item:StoreEntryId";
254 }
255
256
257 /**
258 * Defines the Id property.
259 */
260 public static final PropertyDefinition Id = new ComplexPropertyDefinition<ItemId>(
261 ItemId.class,
262 XmlElementNames.ItemId, FieldUris.ItemId, EnumSet
263 .of(PropertyDefinitionFlags.CanFind),
264 ExchangeVersion.Exchange2007_SP1,
265 new ICreateComplexPropertyDelegate<ItemId>() {
266 public ItemId createComplexProperty() {
267 return new ItemId();
268 }
269 });
270
271 /**
272 * Defines the Body property.
273 */
274 public static final PropertyDefinition Body = new
275 ComplexPropertyDefinition<MessageBody>(
276 MessageBody.class,
277 XmlElementNames.Body, FieldUris.Body, EnumSet.of(
278 PropertyDefinitionFlags.CanSet,
279 PropertyDefinitionFlags.CanUpdate,
280 PropertyDefinitionFlags.CanDelete),
281 ExchangeVersion.Exchange2007_SP1,
282 new ICreateComplexPropertyDelegate<MessageBody>() {
283 public MessageBody createComplexProperty() {
284 return new MessageBody();
285 }
286 });
287
288 /**
289 * Defines the ItemClass property.
290 */
291 public static final PropertyDefinition ItemClass = new StringPropertyDefinition(
292 XmlElementNames.ItemClass, FieldUris.ItemClass, EnumSet.of(
293 PropertyDefinitionFlags.CanSet,
294 PropertyDefinitionFlags.CanUpdate,
295 PropertyDefinitionFlags.CanFind),
296 ExchangeVersion.Exchange2007_SP1);
297
298 /**
299 * Defines the Subject property.
300 */
301 public static final PropertyDefinition Subject = new
302 StringPropertyDefinition(
303 XmlElementNames.Subject, FieldUris.Subject, EnumSet.of(
304 PropertyDefinitionFlags.CanSet,
305 PropertyDefinitionFlags.CanUpdate,
306 PropertyDefinitionFlags.CanDelete,
307 PropertyDefinitionFlags.CanFind),
308 ExchangeVersion.Exchange2007_SP1);
309
310 /**
311 * Defines the MimeContent property.
312 */
313 public static final PropertyDefinition MimeContent =
314 new ComplexPropertyDefinition<microsoft.exchange.webservices.data.property.complex.MimeContent>(
315 MimeContent.class,
316 XmlElementNames.MimeContent, FieldUris.MimeContent, EnumSet.of(
317 PropertyDefinitionFlags.CanSet,
318 PropertyDefinitionFlags.CanUpdate,
319 PropertyDefinitionFlags.MustBeExplicitlyLoaded),
320 ExchangeVersion.Exchange2007_SP1,
321 new ICreateComplexPropertyDelegate<MimeContent>() {
322 public MimeContent createComplexProperty() {
323 return new MimeContent();
324 }
325 });
326
327 /**
328 * Defines the ParentFolderId property.
329 */
330 public static final PropertyDefinition ParentFolderId =
331 new ComplexPropertyDefinition<FolderId>(
332 FolderId.class,
333 XmlElementNames.ParentFolderId, FieldUris.ParentFolderId,
334 ExchangeVersion.Exchange2007_SP1,
335 new ICreateComplexPropertyDelegate<FolderId>() {
336 public FolderId createComplexProperty() {
337 return new FolderId();
338 }
339 });
340
341 /**
342 * Defines the Sensitivity property.
343 */
344 public static final PropertyDefinition Sensitivity =
345 new GenericPropertyDefinition<microsoft.exchange.webservices.data.core.enumeration.property.Sensitivity>(
346 Sensitivity.class,
347 XmlElementNames.Sensitivity, FieldUris.Sensitivity, EnumSet.of(
348 PropertyDefinitionFlags.CanSet,
349 PropertyDefinitionFlags.CanUpdate,
350 PropertyDefinitionFlags.CanFind),
351 ExchangeVersion.Exchange2007_SP1);
352
353 /**
354 * Defines the Attachments property.
355 */
356 public static final PropertyDefinition Attachments = new AttachmentsPropertyDefinition();
357
358 /**
359 * Defines the DateTimeReceived property.
360 */
361 public static final PropertyDefinition DateTimeReceived =
362 new DateTimePropertyDefinition(
363 XmlElementNames.DateTimeReceived, FieldUris.DateTimeReceived,
364 EnumSet.of(PropertyDefinitionFlags.CanFind),
365 ExchangeVersion.Exchange2007_SP1);
366
367 /**
368 * Defines the Size property.
369 */
370 public static final PropertyDefinition Size = new IntPropertyDefinition(
371 XmlElementNames.Size, FieldUris.Size, EnumSet
372 .of(PropertyDefinitionFlags.CanFind),
373 ExchangeVersion.Exchange2007_SP1);
374
375 /**
376 * Defines the Categories property.
377 */
378 public static final PropertyDefinition Categories =
379 new ComplexPropertyDefinition<StringList>(
380 StringList.class,
381 XmlElementNames.Categories, FieldUris.Categories, EnumSet.of(
382 PropertyDefinitionFlags.AutoInstantiateOnRead,
383 PropertyDefinitionFlags.CanSet,
384 PropertyDefinitionFlags.CanUpdate,
385 PropertyDefinitionFlags.CanDelete,
386 PropertyDefinitionFlags.CanFind),
387 ExchangeVersion.Exchange2007_SP1,
388 new ICreateComplexPropertyDelegate<StringList>() {
389 public StringList createComplexProperty() {
390 return new StringList();
391 }
392 });
393
394 /**
395 * Defines the Importance property.
396 */
397 public static final PropertyDefinition Importance =
398 new GenericPropertyDefinition<microsoft.exchange.webservices.data.core.enumeration.property.Importance>(
399 Importance.class,
400 XmlElementNames.Importance, FieldUris.Importance, EnumSet.of(
401 PropertyDefinitionFlags.CanSet,
402 PropertyDefinitionFlags.CanUpdate,
403 PropertyDefinitionFlags.CanFind),
404 ExchangeVersion.Exchange2007_SP1);
405
406 /**
407 * Defines the InReplyTo property.
408 */
409 public static final PropertyDefinition InReplyTo =
410 new StringPropertyDefinition(
411 XmlElementNames.InReplyTo, FieldUris.InReplyTo, EnumSet.of(
412 PropertyDefinitionFlags.CanSet,
413 PropertyDefinitionFlags.CanUpdate,
414 PropertyDefinitionFlags.CanDelete,
415 PropertyDefinitionFlags.CanFind),
416 ExchangeVersion.Exchange2007_SP1);
417
418 /**
419 * Defines the IsSubmitted property.
420 */
421 public static final PropertyDefinition IsSubmitted =
422 new BoolPropertyDefinition(
423 XmlElementNames.IsSubmitted, FieldUris.IsSubmitted, EnumSet
424 .of(PropertyDefinitionFlags.CanFind),
425 ExchangeVersion.Exchange2007_SP1);
426
427 /**
428 * Defines the IsAssociated property.
429 */
430 public static final PropertyDefinition IsAssociated =
431 new BoolPropertyDefinition(
432 XmlElementNames.IsAssociated, FieldUris.IsAssociated, EnumSet.of(
433 PropertyDefinitionFlags.CanSet,
434 PropertyDefinitionFlags.CanFind),
435 ExchangeVersion.Exchange2010);
436
437 /**
438 * Defines the IsDraft property.
439 */
440 public static final PropertyDefinition IsDraft = new BoolPropertyDefinition(
441 XmlElementNames.IsDraft, FieldUris.IsDraft, EnumSet
442 .of(PropertyDefinitionFlags.CanFind),
443 ExchangeVersion.Exchange2007_SP1);
444
445 /**
446 * Defines the IsFromMe property.
447 */
448 public static final PropertyDefinition IsFromMe =
449 new BoolPropertyDefinition(
450 XmlElementNames.IsFromMe, FieldUris.IsFromMe, EnumSet
451 .of(PropertyDefinitionFlags.CanFind),
452 ExchangeVersion.Exchange2007_SP1);
453
454 /**
455 * Defines the IsResend property.
456 */
457 public static final PropertyDefinition IsResend =
458 new BoolPropertyDefinition(
459 XmlElementNames.IsResend, FieldUris.IsResend, EnumSet
460 .of(PropertyDefinitionFlags.CanFind),
461 ExchangeVersion.Exchange2007_SP1);
462
463 /**
464 * Defines the IsUnmodified property.
465 */
466 public static final PropertyDefinition IsUnmodified =
467 new BoolPropertyDefinition(
468 XmlElementNames.IsUnmodified, FieldUris.IsUnmodified, EnumSet
469 .of(PropertyDefinitionFlags.CanFind),
470 ExchangeVersion.Exchange2007_SP1);
471
472 /**
473 * Defines the InternetMessageHeaders property.
474 */
475 public static final PropertyDefinition InternetMessageHeaders =
476 new ComplexPropertyDefinition<InternetMessageHeaderCollection>(
477 InternetMessageHeaderCollection.class,
478 XmlElementNames.InternetMessageHeaders,
479 FieldUris.InternetMessageHeaders,
480 EnumSet.of(PropertyDefinitionFlags.CanFind),
481 ExchangeVersion.Exchange2007_SP1,
482 new ICreateComplexPropertyDelegate
483 <InternetMessageHeaderCollection>() {
484 public InternetMessageHeaderCollection createComplexProperty() {
485 return new InternetMessageHeaderCollection();
486 }
487 });
488
489 /**
490 * Defines the DateTimeSent property.
491 */
492 public static final PropertyDefinition DateTimeSent =
493 new DateTimePropertyDefinition(
494 XmlElementNames.DateTimeSent, FieldUris.DateTimeSent, EnumSet
495 .of(PropertyDefinitionFlags.CanFind),
496 ExchangeVersion.Exchange2007_SP1);
497
498 /**
499 * Defines the DateTimeCreated property.
500 */
501 public static final PropertyDefinition DateTimeCreated =
502 new DateTimePropertyDefinition(
503 XmlElementNames.DateTimeCreated, FieldUris.DateTimeCreated, EnumSet
504 .of(PropertyDefinitionFlags.CanFind),
505 ExchangeVersion.Exchange2007_SP1);
506
507 /**
508 * Defines the AllowedResponseActions property.
509 */
510 public static final PropertyDefinition AllowedResponseActions =
511 new ResponseObjectsPropertyDefinition(
512 XmlElementNames.ResponseObjects, FieldUris.ResponseObjects,
513 ExchangeVersion.Exchange2007_SP1);
514
515 /**
516 * Defines the ReminderDueBy property.
517 */
518
519 public static final PropertyDefinition ReminderDueBy =
520 new DateTimePropertyDefinition(
521 XmlElementNames.ReminderDueBy, FieldUris.ReminderDueBy, EnumSet.of(
522 PropertyDefinitionFlags.CanSet,
523 PropertyDefinitionFlags.CanUpdate,
524 PropertyDefinitionFlags.CanFind),
525 ExchangeVersion.Exchange2007_SP1);
526
527 /**
528 * Defines the IsReminderSet property.
529 */
530 public static final PropertyDefinition IsReminderSet =
531 new BoolPropertyDefinition(
532 XmlElementNames.ReminderIsSet, // Note: server-side the name is
533 // ReminderIsSet
534 FieldUris.ReminderIsSet, EnumSet.of(PropertyDefinitionFlags.CanSet,
535 PropertyDefinitionFlags.CanUpdate,
536 PropertyDefinitionFlags.CanFind),
537 ExchangeVersion.Exchange2007_SP1);
538
539 /**
540 * Defines the ReminderMinutesBeforeStart property.
541 */
542 public static final PropertyDefinition ReminderMinutesBeforeStart =
543 new IntPropertyDefinition(
544 XmlElementNames.ReminderMinutesBeforeStart,
545 FieldUris.ReminderMinutesBeforeStart, EnumSet.of(
546 PropertyDefinitionFlags.CanSet,
547 PropertyDefinitionFlags.CanUpdate,
548 PropertyDefinitionFlags.CanFind),
549 ExchangeVersion.Exchange2007_SP1);
550
551 /**
552 * Defines the DisplayCc property.
553 */
554 public static final PropertyDefinition DisplayCc =
555 new StringPropertyDefinition(
556 XmlElementNames.DisplayCc, FieldUris.DisplayCc, EnumSet
557 .of(PropertyDefinitionFlags.CanFind),
558 ExchangeVersion.Exchange2007_SP1);
559
560 /**
561 * Defines the DisplayTo property.
562 */
563 public static final PropertyDefinition DisplayTo =
564 new StringPropertyDefinition(
565 XmlElementNames.DisplayTo, FieldUris.DisplayTo, EnumSet
566 .of(PropertyDefinitionFlags.CanFind),
567 ExchangeVersion.Exchange2007_SP1);
568
569 /**
570 * Defines the HasAttachments property.
571 */
572 public static final PropertyDefinition HasAttachments =
573 new BoolPropertyDefinition(
574 XmlElementNames.HasAttachments, FieldUris.HasAttachments, EnumSet
575 .of(PropertyDefinitionFlags.CanFind),
576 ExchangeVersion.Exchange2007_SP1);
577
578 /**
579 * Defines the Culture property.
580 */
581 public static final PropertyDefinition Culture =
582 new StringPropertyDefinition(
583 XmlElementNames.Culture, FieldUris.Culture, EnumSet.of(
584 PropertyDefinitionFlags.CanSet,
585 PropertyDefinitionFlags.CanUpdate,
586 PropertyDefinitionFlags.CanDelete,
587 PropertyDefinitionFlags.CanFind),
588 ExchangeVersion.Exchange2007_SP1);
589
590 /**
591 * Defines the EffectiveRights property.
592 */
593 public static final PropertyDefinition EffectiveRights =
594 new EffectiveRightsPropertyDefinition(
595 XmlElementNames.EffectiveRights, FieldUris.EffectiveRights, EnumSet
596 .of(PropertyDefinitionFlags.CanFind),
597 ExchangeVersion.Exchange2007_SP1);
598
599 /**
600 * Defines the LastModifiedName property.
601 */
602 public static final PropertyDefinition LastModifiedName =
603 new StringPropertyDefinition(
604 XmlElementNames.LastModifiedName, FieldUris.LastModifiedName,
605 EnumSet.of(PropertyDefinitionFlags.CanFind),
606 ExchangeVersion.Exchange2007_SP1);
607
608 /**
609 * Defines the LastModifiedTime property.
610 */
611 public static final PropertyDefinition LastModifiedTime =
612 new DateTimePropertyDefinition(
613 XmlElementNames.LastModifiedTime, FieldUris.LastModifiedTime,
614 EnumSet.of(PropertyDefinitionFlags.CanFind),
615 ExchangeVersion.Exchange2007_SP1);
616
617 /**
618 * Defines the WebClientReadFormQueryString property.
619 */
620 public static final PropertyDefinition WebClientReadFormQueryString =
621 new StringPropertyDefinition(
622 XmlElementNames.WebClientReadFormQueryString,
623 FieldUris.WebClientReadFormQueryString, EnumSet
624 .of(PropertyDefinitionFlags.CanFind),
625 ExchangeVersion.Exchange2010);
626
627 /**
628 * Defines the WebClientEditFormQueryString property.
629 */
630 public static final PropertyDefinition WebClientEditFormQueryString =
631 new StringPropertyDefinition(
632 XmlElementNames.WebClientEditFormQueryString,
633 FieldUris.WebClientEditFormQueryString, EnumSet
634 .of(PropertyDefinitionFlags.CanFind),
635 ExchangeVersion.Exchange2010);
636
637 /**
638 * Defines the ConversationId property.
639 */
640 public static final PropertyDefinition ConversationId =
641 new ComplexPropertyDefinition<microsoft.exchange.webservices.data.property.complex.ConversationId>(
642 ConversationId.class,
643 XmlElementNames.ConversationId, FieldUris.ConversationId, EnumSet
644 .of(PropertyDefinitionFlags.CanFind),
645 ExchangeVersion.Exchange2010,
646 new ICreateComplexPropertyDelegate<ConversationId>() {
647 public ConversationId createComplexProperty() {
648 return new ConversationId();
649 }
650 });
651
652 /**
653 * Defines the UniqueBody property.
654 */
655 public static final PropertyDefinition UniqueBody =
656 new ComplexPropertyDefinition<microsoft.exchange.webservices.data.property.complex.UniqueBody>(
657 UniqueBody.class,
658 XmlElementNames.UniqueBody, FieldUris.UniqueBody, EnumSet
659 .of(PropertyDefinitionFlags.MustBeExplicitlyLoaded),
660 ExchangeVersion.Exchange2010,
661 new ICreateComplexPropertyDelegate<UniqueBody>() {
662 public UniqueBody createComplexProperty() {
663 return new UniqueBody();
664 }
665 });
666
667 /**
668 * Defines the StoreEntryId property.
669 */
670
671 public static final PropertyDefinition StoreEntryId =
672 new ByteArrayPropertyDefinition(
673 XmlElementNames.StoreEntryId,
674 FieldUris.StoreEntryId,
675 EnumSet
676 .of(PropertyDefinitionFlags.CanFind),
677 ExchangeVersion.Exchange2010_SP2);
678
679
680
681 /**
682 * The Constant Instance.
683 */
684 protected static final ItemSchema Instance = new ItemSchema();
685
686 /**
687 * Gets the single instance of ItemSchema.
688 *
689 * @return single instance of ItemSchema
690 */
691 public static ItemSchema getInstance() {
692 return Instance;
693 }
694
695 /**
696 * Registers property.
697 * <p>
698 * IMPORTANT NOTE: PROPERTIES MUST BE REGISTERED IN SCHEMA ORDER (i.e. the
699 * same order as they are defined in types.xsd)
700 * </p>
701 */
702 @Override
703 protected void registerProperties() {
704 super.registerProperties();
705 this.registerProperty(MimeContent);
706 this.registerProperty(Id);
707 this.registerProperty(ParentFolderId);
708 this.registerProperty(ItemClass);
709 this.registerProperty(Subject);
710 this.registerProperty(Sensitivity);
711 this.registerProperty(Body);
712 this.registerProperty(Attachments);
713 this.registerProperty(DateTimeReceived);
714 this.registerProperty(Size);
715 this.registerProperty(Categories);
716 this.registerProperty(Importance);
717 this.registerProperty(InReplyTo);
718 this.registerProperty(IsSubmitted);
719 this.registerProperty(IsDraft);
720 this.registerProperty(IsFromMe);
721 this.registerProperty(IsResend);
722 this.registerProperty(IsUnmodified);
723 this.registerProperty(InternetMessageHeaders);
724 this.registerProperty(DateTimeSent);
725 this.registerProperty(DateTimeCreated);
726 this.registerProperty(AllowedResponseActions);
727 this.registerProperty(ReminderDueBy);
728 this.registerProperty(IsReminderSet);
729 this.registerProperty(ReminderMinutesBeforeStart);
730 this.registerProperty(DisplayCc);
731 this.registerProperty(DisplayTo);
732 this.registerProperty(HasAttachments);
733 this.registerProperty(ServiceObjectSchema.extendedProperties);
734 this.registerProperty(Culture);
735 this.registerProperty(EffectiveRights);
736 this.registerProperty(LastModifiedName);
737 this.registerProperty(LastModifiedTime);
738 this.registerProperty(IsAssociated);
739 this.registerProperty(WebClientReadFormQueryString);
740 this.registerProperty(WebClientEditFormQueryString);
741 this.registerProperty(ConversationId);
742 this.registerProperty(UniqueBody);
743 this.registerProperty(StoreEntryId);
744
745 }
746
747 /**
748 * Initializes a new instance.
749 */
750 protected ItemSchema() {
751 super();
752 }
753 }