All Downloads are FREE. Search and download functionalities are using the official Maven repository.

microsoft.exchange.webservices.data.core.service.schema.ConversationSchema Maven / Gradle / Ivy

/*
 * The MIT License
 * Copyright (c) 2012 Microsoft Corporation
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

package microsoft.exchange.webservices.data.core.service.schema;

import microsoft.exchange.webservices.data.attribute.Schema;
import microsoft.exchange.webservices.data.core.XmlElementNames;
import microsoft.exchange.webservices.data.core.enumeration.service.ConversationFlagStatus;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.core.enumeration.property.Importance;
import microsoft.exchange.webservices.data.core.enumeration.property.PropertyDefinitionFlags;
import microsoft.exchange.webservices.data.property.complex.ConversationId;
import microsoft.exchange.webservices.data.property.complex.ICreateComplexPropertyDelegate;
import microsoft.exchange.webservices.data.property.complex.ItemIdCollection;
import microsoft.exchange.webservices.data.property.complex.StringList;
import microsoft.exchange.webservices.data.property.definition.BoolPropertyDefinition;
import microsoft.exchange.webservices.data.property.definition.ComplexPropertyDefinition;
import microsoft.exchange.webservices.data.property.definition.DateTimePropertyDefinition;
import microsoft.exchange.webservices.data.property.definition.GenericPropertyDefinition;
import microsoft.exchange.webservices.data.property.definition.IntPropertyDefinition;
import microsoft.exchange.webservices.data.property.definition.PropertyDefinition;
import microsoft.exchange.webservices.data.property.definition.StringPropertyDefinition;

import java.util.EnumSet;

/**
 * Represents the schema for Conversation.
 */
@Schema
public class ConversationSchema extends ServiceObjectSchema {

  /**
   * Field URIs for Item.
   */
  private static class FieldUris {
    /**
     * The Constant ConversationId.
     */
    public static final String ConversationId =
        "conversation:ConversationId";

    /**
     * The Constant ConversationTopic.
     */
    public static final String ConversationTopic =
        "conversation:ConversationTopic";

    /**
     * The Constant UniqueRecipients.
     */
    public static final String UniqueRecipients =
        "conversation:UniqueRecipients";

    /**
     * The Constant GlobalUniqueRecipients.
     */
    public static final String GlobalUniqueRecipients =
        "conversation:GlobalUniqueRecipients";

    /**
     * The Constant UniqueUnreadSenders.
     */
    public static final String UniqueUnreadSenders =
        "conversation:UniqueUnreadSenders";

    /**
     * The Constant GlobalUniqueUnreadSenders.
     */
    public static final String GlobalUniqueUnreadSenders =
        "conversation:GlobalUniqueUnreadSenders";

    /**
     * The Constant UniqueSenders.
     */
    public static final String UniqueSenders = "conversation:UniqueSenders";

    /**
     * The Constant GlobalUniqueSenders.
     */
    public static final String GlobalUniqueSenders =
        "conversation:GlobalUniqueSenders";

    /**
     * The Constant LastDeliveryTime.
     */
    public static final String LastDeliveryTime =
        "conversation:LastDeliveryTime";

    /**
     * The Constant GlobalLastDeliveryTime.
     */
    public static final String GlobalLastDeliveryTime =
        "conversation:GlobalLastDeliveryTime";

    /**
     * The Constant Categories.
     */
    public static final String Categories = "conversation:Categories";

    /**
     * The Constant GlobalCategories.
     */
    public static final String GlobalCategories =
        "conversation:GlobalCategories";

    /**
     * The Constant FlagStatus.
     */
    public static final String FlagStatus = "conversation:FlagStatus";

    /**
     * The Constant GlobalFlagStatus.
     */
    public static final String GlobalFlagStatus =
        "conversation:GlobalFlagStatus";

    /**
     * The Constant HasAttachments.
     */
    public static final String HasAttachments =
        "conversation:HasAttachments";

    /**
     * The Constant GlobalHasAttachments.
     */
    public static final String GlobalHasAttachments =
        "conversation:GlobalHasAttachments";

    /**
     * The Constant MessageCount.
     */
    public static final String MessageCount = "conversation:MessageCount";

    /**
     * The Constant GlobalMessageCount.
     */
    public static final String GlobalMessageCount =
        "conversation:GlobalMessageCount";

    /**
     * The Constant UnreadCount.
     */
    public static final String UnreadCount = "conversation:UnreadCount";

    /**
     * The Constant GlobalUnreadCount.
     */
    public static final String GlobalUnreadCount =
        "conversation:GlobalUnreadCount";

    /**
     * The Constant Size.
     */
    public static final String Size = "conversation:Size";

    /**
     * The Constant GlobalSize.
     */
    public static final String GlobalSize = "conversation:GlobalSize";

    /**
     * The Constant ItemClasses.
     */
    public static final String ItemClasses = "conversation:ItemClasses";

    /**
     * The Constant GlobalItemClasses.
     */
    public static final String GlobalItemClasses =
        "conversation:GlobalItemClasses";

    /**
     * The Constant Importance.
     */
    public static final String Importance = "conversation:Importance";

    /**
     * The Constant GlobalImportance.
     */
    public static final String GlobalImportance =
        "conversation:GlobalImportance";

    /**
     * The Constant ItemIds.
     */
    public static final String ItemIds = "conversation:ItemIds";

    /**
     * The Constant GlobalItemIds.
     */
    public static final String GlobalItemIds = "conversation:GlobalItemIds";

  }


  /**
   * Defines the Id property.
   */
  public static final PropertyDefinition Id = new ComplexPropertyDefinition(
      ConversationId.class,
      XmlElementNames.ConversationId, FieldUris.ConversationId, EnumSet
      .of(PropertyDefinitionFlags.CanFind),
      ExchangeVersion.Exchange2010_SP1,
      new ICreateComplexPropertyDelegate() {
        public ConversationId createComplexProperty() {
          return new ConversationId();
        }
      });

  /**
   * Defines the Topic property.
   */
  public static final PropertyDefinition Topic =
      new StringPropertyDefinition(
          XmlElementNames.ConversationTopic,
          FieldUris.ConversationTopic,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the UniqueRecipients property.
   */
  public static final PropertyDefinition UniqueRecipients = new
      ComplexPropertyDefinition(
      StringList.class,
      XmlElementNames.UniqueRecipients,
      FieldUris.UniqueRecipients, EnumSet
      .of(PropertyDefinitionFlags.CanFind),
      ExchangeVersion.Exchange2010_SP1,
      new ICreateComplexPropertyDelegate() {
        public StringList createComplexProperty() {
          return new StringList();
        }
      });


  /**
   * Defines the GlobalUniqueRecipients property.
   */
  public static final PropertyDefinition GlobalUniqueRecipients =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.GlobalUniqueRecipients,
          FieldUris.GlobalUniqueRecipients,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the UniqueUnreadSenders property.
   */
  public static final PropertyDefinition UniqueUnreadSenders =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.UniqueUnreadSenders,
          FieldUris.UniqueUnreadSenders,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the GlobalUniqueUnreadSenders property.
   */
  public static final PropertyDefinition GlobalUniqueUnreadSenders =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.GlobalUniqueUnreadSenders,
          FieldUris.GlobalUniqueUnreadSenders,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the UniqueSenders property.
   */
  public static final PropertyDefinition UniqueSenders =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.UniqueSenders,
          FieldUris.UniqueSenders,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the GlobalUniqueSenders property.
   */
  public static final PropertyDefinition GlobalUniqueSenders =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.GlobalUniqueSenders,
          FieldUris.GlobalUniqueSenders,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the LastDeliveryTime property.
   */
  public static final PropertyDefinition LastDeliveryTime =
      new DateTimePropertyDefinition(
          XmlElementNames.LastDeliveryTime,
          FieldUris.LastDeliveryTime,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalLastDeliveryTime property.
   */
  public static final PropertyDefinition GlobalLastDeliveryTime =
      new DateTimePropertyDefinition(
          XmlElementNames.GlobalLastDeliveryTime,
          FieldUris.GlobalLastDeliveryTime,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the Categories property.
   */
  public static final PropertyDefinition Categories =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.Categories,
          FieldUris.Categories,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the GlobalCategories property.
   */
  public static final PropertyDefinition GlobalCategories =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.GlobalCategories,
          FieldUris.GlobalCategories,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList();
            }
          });

  /**
   * Defines the FlagStatus property.
   */
  public static final PropertyDefinition FlagStatus =
      new GenericPropertyDefinition(
          ConversationFlagStatus.class,
          XmlElementNames.FlagStatus,
          FieldUris.FlagStatus,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalFlagStatus property.
   */
  public static final PropertyDefinition GlobalFlagStatus =
      new GenericPropertyDefinition(
          ConversationFlagStatus.class,
          XmlElementNames.GlobalFlagStatus,
          FieldUris.GlobalFlagStatus,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the HasAttachments property.
   */
  public static final PropertyDefinition HasAttachments =
      new BoolPropertyDefinition(
          XmlElementNames.HasAttachments,
          FieldUris.HasAttachments,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalHasAttachments property.
   */
  public static final PropertyDefinition GlobalHasAttachments =
      new BoolPropertyDefinition(
          XmlElementNames.GlobalHasAttachments,
          FieldUris.GlobalHasAttachments,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the MessageCount property.
   */
  public static final PropertyDefinition MessageCount =
      new IntPropertyDefinition(
          XmlElementNames.MessageCount,
          FieldUris.MessageCount,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalMessageCount property.
   */
  public static final PropertyDefinition GlobalMessageCount =
      new IntPropertyDefinition(
          XmlElementNames.GlobalMessageCount,
          FieldUris.GlobalMessageCount,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the UnreadCount property.
   */
  public static final PropertyDefinition UnreadCount =
      new IntPropertyDefinition(
          XmlElementNames.UnreadCount,
          FieldUris.UnreadCount,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalUnreadCount property.
   */
  public static final PropertyDefinition GlobalUnreadCount =
      new IntPropertyDefinition(
          XmlElementNames.GlobalUnreadCount,
          FieldUris.GlobalUnreadCount,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the Size property.
   */
  public static final PropertyDefinition Size =
      new IntPropertyDefinition(
          XmlElementNames.Size,
          FieldUris.Size,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalSize property.
   */
  public static final PropertyDefinition GlobalSize =
      new IntPropertyDefinition(
          XmlElementNames.GlobalSize,
          FieldUris.GlobalSize,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the ItemClasses property.
   */
  public static final PropertyDefinition ItemClasses =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.ItemClasses,
          FieldUris.ItemClasses,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList(XmlElementNames.
                  ItemClass);
            }
          });

  /**
   * Defines the GlobalItemClasses property.
   */
  public static final PropertyDefinition GlobalItemClasses =
      new ComplexPropertyDefinition(
          StringList.class,
          XmlElementNames.GlobalItemClasses,
          FieldUris.GlobalItemClasses,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public StringList createComplexProperty() {
              return new StringList(XmlElementNames.
                  ItemClass);
            }
          });

  /**
   * Defines the Importance property.
   */
  public static final PropertyDefinition Importance =
      new GenericPropertyDefinition(
          Importance.class,
          XmlElementNames.Importance,
          FieldUris.Importance,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the GlobalImportance property.
   */
  public static final PropertyDefinition GlobalImportance =
      new GenericPropertyDefinition(
          Importance.class,
          XmlElementNames.GlobalImportance,
          FieldUris.GlobalImportance,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1);

  /**
   * Defines the ItemIds property.
   */
  public static final PropertyDefinition ItemIds =
      new ComplexPropertyDefinition(
          ItemIdCollection.class,
          XmlElementNames.ItemIds,
          FieldUris.ItemIds,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public ItemIdCollection createComplexProperty() {
              return new ItemIdCollection();
            }
          });

  /**
   * Defines the GlobalItemIds property.
   */
  public static final PropertyDefinition GlobalItemIds =
      new ComplexPropertyDefinition(
          ItemIdCollection.class,
          XmlElementNames.GlobalItemIds,
          FieldUris.GlobalItemIds,
          EnumSet
              .of(PropertyDefinitionFlags.CanFind),
          ExchangeVersion.Exchange2010_SP1,
          new ICreateComplexPropertyDelegate() {
            public ItemIdCollection createComplexProperty() {
              return new ItemIdCollection();
            }
          });

  /**
   * This must be declared after the property definitions
   */
  public static final ConversationSchema Instance =
      new ConversationSchema();

  /**
   * Registers property.
   */
  @Override
  protected void registerProperties() {
    super.registerProperties();

    this.registerProperty(Id);
    this.registerProperty(Topic);
    this.registerProperty(UniqueRecipients);
    this.registerProperty(GlobalUniqueRecipients);
    this.registerProperty(UniqueUnreadSenders);
    this.registerProperty(GlobalUniqueUnreadSenders);
    this.registerProperty(UniqueSenders);
    this.registerProperty(GlobalUniqueSenders);
    this.registerProperty(LastDeliveryTime);
    this.registerProperty(GlobalLastDeliveryTime);
    this.registerProperty(Categories);
    this.registerProperty(GlobalCategories);
    this.registerProperty(FlagStatus);
    this.registerProperty(GlobalFlagStatus);
    this.registerProperty(HasAttachments);
    this.registerProperty(GlobalHasAttachments);
    this.registerProperty(MessageCount);
    this.registerProperty(GlobalMessageCount);
    this.registerProperty(UnreadCount);
    this.registerProperty(GlobalUnreadCount);
    this.registerProperty(Size);
    this.registerProperty(GlobalSize);
    this.registerProperty(ItemClasses);
    this.registerProperty(GlobalItemClasses);
    this.registerProperty(Importance);
    this.registerProperty(GlobalImportance);
    this.registerProperty(ItemIds);
    this.registerProperty(GlobalItemIds);
  }

  /**
   * Initializes a new instance of
   * the ConversationSchema class.
   */
  protected ConversationSchema() {
    super();
  }



}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy