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.Importance; 030import microsoft.exchange.webservices.data.core.enumeration.property.PropertyDefinitionFlags; 031import microsoft.exchange.webservices.data.core.enumeration.property.Sensitivity; 032import microsoft.exchange.webservices.data.property.complex.ConversationId; 033import microsoft.exchange.webservices.data.property.complex.FolderId; 034import microsoft.exchange.webservices.data.property.complex.ICreateComplexPropertyDelegate; 035import microsoft.exchange.webservices.data.property.complex.InternetMessageHeaderCollection; 036import microsoft.exchange.webservices.data.property.complex.ItemId; 037import microsoft.exchange.webservices.data.property.complex.MessageBody; 038import microsoft.exchange.webservices.data.property.complex.MimeContent; 039import microsoft.exchange.webservices.data.property.complex.StringList; 040import microsoft.exchange.webservices.data.property.complex.UniqueBody; 041import microsoft.exchange.webservices.data.property.definition.AttachmentsPropertyDefinition; 042import microsoft.exchange.webservices.data.property.definition.BoolPropertyDefinition; 043import microsoft.exchange.webservices.data.property.definition.ByteArrayPropertyDefinition; 044import microsoft.exchange.webservices.data.property.definition.ComplexPropertyDefinition; 045import microsoft.exchange.webservices.data.property.definition.DateTimePropertyDefinition; 046import microsoft.exchange.webservices.data.property.definition.EffectiveRightsPropertyDefinition; 047import microsoft.exchange.webservices.data.property.definition.GenericPropertyDefinition; 048import microsoft.exchange.webservices.data.property.definition.IntPropertyDefinition; 049import microsoft.exchange.webservices.data.property.definition.PropertyDefinition; 050import microsoft.exchange.webservices.data.property.definition.ResponseObjectsPropertyDefinition; 051import microsoft.exchange.webservices.data.property.definition.StringPropertyDefinition; 052 053import java.util.EnumSet; 054 055/** 056 * Represents the schema for generic item. 057 */ 058@Schema 059public 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}