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

microsoft.exchange.webservices.data.RulePredicates Maven / Gradle / Ivy

Go to download

The source came from http://archive.msdn.microsoft.com/ewsjavaapi Support for Maven has been added.

The newest version!
/**************************************************************************
 * copyright file="RulePredicates.java" company="Microsoft"
 *     Copyright (c) Microsoft Corporation.  All rights reserved.
 * 
 * Defines the RulePredicates class.
 **************************************************************************/
package microsoft.exchange.webservices.data;

/**
 * Represents the set of conditions and exceptions available for a rule.
 */
public final class RulePredicates extends ComplexProperty{

	/**
	 * The HasCategories predicate.
	 */
	private StringList categories;

	/**
	 * The ContainsBodyStrings predicate.
	 */
	private StringList containsBodyStrings;
	/**
	 * The ContainsHeaderStrings predicate.
	 */
	private StringList containsHeaderStrings;

	/**
	 * The ContainsRecipientStrings predicate.
	 */
	private StringList containsRecipientStrings;

	/**
	 * The ContainsSenderStrings predicate.
	 */
	private StringList containsSenderStrings;

	/**
	 * The ContainsSubjectOrBodyStrings predicate.
	 */
	private StringList containsSubjectOrBodyStrings;

	/**
	 * The ContainsSubjectStrings predicate.
	 */
	private StringList containsSubjectStrings;

	/**
	 * The FlaggedForAction predicate.
	 */
	private FlaggedForAction flaggedForAction;

	/**
	 * The FromAddresses predicate.
	 */
	private EmailAddressCollection fromAddresses;

	/**
	 * The FromConnectedAccounts predicate.
	 */
	private StringList fromConnectedAccounts;

	/**
	 * The HasAttachments predicate.
	 */
	private boolean hasAttachments;

	/**
	 * The Importance predicate.
	 */
	private Importance importance;

	/**
	 * The IsApprovalRequest predicate.
	 */
	private boolean isApprovalRequest;

	/**
	 * The IsAutomaticForward predicate.
	 */
	private boolean isAutomaticForward;

	/**
	 * The IsAutomaticReply predicate.
	 */
	private boolean isAutomaticReply;

	/**
	 * The IsEncrypted predicate.
	 */
	private boolean isEncrypted;

	/**
	 * The IsMeetingRequest predicate.
	 */
	private boolean isMeetingRequest;

	/**
	 * The IsMeetingResponse predicate.
	 */
	private boolean isMeetingResponse;

	/**
	 * The IsNDR predicate.
	 */
	private boolean isNonDeliveryReport;

	/**
	 * The IsPermissionControlled predicate.
	 */
	private boolean isPermissionControlled;

	/**
	 * The IsSigned predicate.
	 */
	private boolean isSigned;

	/**
	 * The IsVoicemail predicate.
	 */
	private boolean isVoicemail;

	/**
	 * The IsReadReceipt  predicate.
	 */
	private boolean isReadReceipt;

	/**
	 * ItemClasses predicate.
	 */
	private StringList itemClasses;

	/**
	 * The MessageClassifications predicate.
	 */
	private StringList messageClassifications;

	/**
	 * The NotSentToMe predicate.
	 */
	private boolean notSentToMe;

	/**
	 * SentCcMe predicate.
	 */
	private boolean sentCcMe;

	/**
	 * The SentOnlyToMe predicate.
	 */
	private boolean sentOnlyToMe;

	/**
	 * The SentToAddresses predicate.
	 */
	private EmailAddressCollection sentToAddresses;

	/**
	 * The SentToMe predicate.
	 */
	private boolean sentToMe;

	/**
	 * The SentToOrCcMe predicate.
	 */
	private boolean sentToOrCcMe;

	/**
	 * The Sensitivity predicate.
	 */
	private Sensitivity sensitivity;

	/**
	 * The Sensitivity predicate.
	 */
	private RulePredicateDateRange withinDateRange;

	/**
	 * The Sensitivity predicate.
	 */
	private RulePredicateSizeRange withinSizeRange;

	/**
	 * Initializes a new instance of the RulePredicates class.
	 */
	protected RulePredicates() {
		super();
		this.categories = new StringList();
		this.containsBodyStrings = new StringList();
		this.containsHeaderStrings = new StringList();
		this.containsRecipientStrings = new StringList();
		this.containsSenderStrings = new StringList();
		this.containsSubjectOrBodyStrings = new StringList();
		this.containsSubjectStrings = new StringList();
		this.fromAddresses = 
			new EmailAddressCollection(XmlElementNames.Address);
		this.fromConnectedAccounts = new StringList();
		this.itemClasses = new StringList();
		this.messageClassifications = new StringList();
		this.sentToAddresses =
			new EmailAddressCollection(XmlElementNames.Address);
		this.withinDateRange = new RulePredicateDateRange();
		this.withinSizeRange = new RulePredicateSizeRange();
	}

	/**
	 * Gets the categories that an incoming message 
	 * should be stamped with for the condition or exception to apply.
	 * To disable this predicate, empty the list.
	 */
	public StringList getCategories() {
		return this.categories;
	}

	/**
	 * Gets the strings that should appear in the body of 
	 * incoming messages for the condition or exception to apply.
	 * To disable this predicate, empty the list.
	 */
	public StringList getContainsBodyStrings() {
		return this.containsBodyStrings;
	}

	/**
	 * Gets the strings that should appear in the 
	 * headers of incoming messages for the condition or
	 * exception to apply. To disable this predicate, empty the list.
	 */
	public StringList getContainsHeaderStrings() {
		return this.containsHeaderStrings;
	}

	/**
	 * Gets the strings that should appear in either the
	 *  To or Cc fields of incoming messages for the condition 
	 * or exception to apply. To disable this predicate, empty the list.
	 */
	public StringList getContainsRecipientStrings() {
		return this.containsRecipientStrings;
	}

	/**
	 * Gets the strings that should appear 
	 * in the From field of incoming messages 
	 * for the condition or exception to apply. 
	 * To disable this predicate, empty  the list.
	 */
	public StringList getContainsSenderStrings() {
		return this.containsSenderStrings;
	}

	/**
	 * Gets the strings that should appear in either 
	 * the body or the subject of incoming messages for the 
	 * condition or exception to apply.
	 * To disable this predicate, empty the list.
	 */
	public StringList getContainsSubjectOrBodyStrings() {
		return this.containsSubjectOrBodyStrings;
	}

	/**
	 * Gets the strings that should appear in the subject 
	 * of incoming messages for the condition or exception 
	 * to apply. To disable this predicate, empty the list.
	 */
	public StringList getContainsSubjectStrings() {
		return this.containsSubjectStrings;
	}

	/**
	 * Gets or sets the flag for action value that should
	 *  appear on incoming messages for the condition or execption to apply. 
	 * To disable this predicate, set it to null. 
	 */
	public FlaggedForAction getFlaggedForAction() {

		return this.flaggedForAction;
	}
	public  void setFlaggedForAction(FlaggedForAction value) {
		if (this.canSetFieldValue(this.flaggedForAction, value)) {
			this.flaggedForAction = value;
			this.changed();
		}
	}

	/**
	 * Gets the e-mail addresses of the senders of incoming
	 *  messages for the condition or exception to apply. 
	 * To disable this predicate, empty the list.
	 */
	public EmailAddressCollection getFromAddresses() {
		return this.fromAddresses;
	}

	/**
	 * Gets or sets a value indicating whether incoming messages must have
	 * attachments for the condition or exception to apply.  
	 */
	public boolean getHasAttachments() {
		return this.hasAttachments;
	}
	public void setHasAttachments(boolean value) {
		if (this.canSetFieldValue(this.hasAttachments, value)) {
			this.hasAttachments = value;
			this.changed();
		}
	}

	/**
	 * Gets or sets the importance that should be stamped on incoming messages 
	 * for the condition or exception to apply.
	 *  To disable this predicate, set it to null.
	 */
	public Importance getImportance(){
		return this.importance;
	}
	public void setImportance(Importance value) { 
		if (this.canSetFieldValue(this.importance, value)) {
			this.importance = value;
			this.changed();
		}
	}

	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * approval requests for the condition or exception to apply. 
	 */
	public boolean getIsApprovalRequest() {
		return this.isApprovalRequest;
	}
	public  void setIsApprovalRequest(boolean value){
		if (this.canSetFieldValue(this.isApprovalRequest, value)) {

			this.isApprovalRequest = value;
			this.changed();
		}
	}

	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * automatic forwards for the condition or exception to apply.
	 */
	public boolean getIsAutomaticForward(){
		return this.isAutomaticForward;
	}

	public  void setIsAutomaticForward(boolean value){
		if (this.canSetFieldValue(this.isAutomaticForward, value)) {
			this.isAutomaticForward = value;
			this.changed();
		}
	}
	/**
	 * Gets or sets a value indicating whether incoming messages must be
	 * automatic replies for the condition or exception to apply. 
	 */
	public boolean getIsAutomaticReply() {
		return this.isAutomaticReply;
	}
	public  void setIsAutomaticReply(boolean value) {
		if (this.canSetFieldValue(this.isAutomaticReply, value)) {
			this.isAutomaticReply = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * S/MIME encrypted for the condition or exception to apply.
	 */
	public boolean getIsEncrypted() {
		return this.isEncrypted;
	}
	public void setIsEncrypted(boolean value) {
		if (this.canSetFieldValue(this.isEncrypted, value)) {
			this.isEncrypted = value;
			this.changed();
		}
	}

	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * meeting requests for the condition or exception to apply. 
	 */
	public boolean getIsMeetingRequest() {
		return this.isMeetingRequest;
	}
	public  void setIsMeetingRequest(boolean value) {
		if (this.canSetFieldValue(this.isEncrypted, value)) {

			this.isEncrypted = value;
			this.changed();
		}

	}


	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * meeting responses for the condition or exception to apply. 
	 */
	public boolean getIsMeetingResponse() {

		return this.isMeetingResponse;
	}
	public void setIsMeetingResponse(boolean value) {
		if (this.canSetFieldValue(this.isMeetingResponse, value)) {
			this.isMeetingResponse = value;
			this.changed();
		}
	}

	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * non-delivery reports (NDR) for the condition or exception to apply. 
	 */
	public boolean getIsNonDeliveryReport() {
		return this.isNonDeliveryReport;
	}

	public void setIsNonDeliveryReport(boolean value) {
		if (this.canSetFieldValue(this.isNonDeliveryReport, value)) {
			this.isNonDeliveryReport = value;
			this.changed();
		}
	}

	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * permission controlled (RMS protected) for the condition or exception 
	 * to apply. 
	 */
	public boolean getIsPermissionControlled() {
		return this.isPermissionControlled;
	}

	public  void setIsPermissionControlled(boolean value) {
		if (this.canSetFieldValue(this.isPermissionControlled, value)) {
			this.isPermissionControlled = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * S/MIME signed for the condition or exception to apply. 
	 */
	public boolean getIsSigned() {
		return this.isSigned;
	}
	public void setIsSigned(boolean value) {
		if (this.canSetFieldValue(this.isSigned, value)) {
			this.isSigned = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * voice mails for the condition or exception to apply. 
	 */
	public boolean getIsVoicemail() {
		return this.isVoicemail;
	}
	public  void setIsVoicemail(boolean value) {
		if (this.canSetFieldValue(this.isVoicemail, value)) {
			this.isVoicemail = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets a value indicating whether incoming messages must be 
	 * read receipts for the condition or exception to apply. 
	 */
	public boolean getIsReadReceipt() {
		return this.isReadReceipt;
	}

	public void setIsReadReceipt(boolean value) {
		if (this.canSetFieldValue(this.isReadReceipt, value)) {
			this.isReadReceipt = value;
			this.changed();
		}
	}

	/**
	 * Gets the e-mail account names from which incoming messages must have 
	 * been aggregated for the condition or exception to apply. To disable 
	 * this predicate, empty the list.
	 */
	public StringList getFromConnectedAccounts() {
		return this.fromConnectedAccounts;
	}

	/**
	 * Gets the item classes that must be stamped on incoming messages for
	 * the condition or exception to apply. To disable this predicate, 
	 * empty the list.
	 */
	public StringList getItemClasses() {
		return this.itemClasses;
	}

	/**
	 * Gets the message classifications that
	 *  must be stamped on incoming messages
	 * for the condition or exception to apply. To disable this predicate, 
	 * empty the list.
	 */
	public StringList getMessageClassifications() {

		return this.messageClassifications;

	}

	/**
	 * Gets or sets a value indicating whether the owner of the mailbox must 
	 * NOT be a To recipient of the incoming messages for the condition or 
	 * exception to apply.
	 */

	public boolean getNotSentToMe() {
		return this.notSentToMe;
	}
	public void setNotSentToMe(boolean value) {
		if (this.canSetFieldValue(this.notSentToMe, value)) {
			this.notSentToMe = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets a value indicating whether the owner of the mailbox must be 
	 * a Cc recipient of incoming messages 
	 * for the condition or exception to apply. 
	 */
	public boolean getSentCcMe() {
		return this.sentCcMe;
	}
	public void setSentCcMe(boolean value) {
		if (this.canSetFieldValue(this.sentCcMe, value)) {
		this.sentCcMe = value;
		this.changed();
	}
	}


	/**
	 * Gets or sets a value indicating whether the owner of the mailbox must be 
	 * the only To recipient of incoming 
	 * messages for the condition or exception 
	 * to apply.
	 */
	public boolean getSentOnlyToMe() {
		return this.sentOnlyToMe;
	}
	public void setSentOnlyToMe(boolean value) {
		if (this.canSetFieldValue(this.sentOnlyToMe, value)) {
		this.sentOnlyToMe = value;
		this.changed();
	}
	}


	/**
	 * Gets the e-mail addresses incoming messages must have been sent to for 
	 * the condition or exception to apply. To disable this predicate, empty 
	 * the list.
	 */
	public EmailAddressCollection getSentToAddresses() {
		return this.sentToAddresses;

	}

	/**
	 * Gets or sets a value indicating whether the owner of the mailbox must be 
	 * a To recipient of incoming messages 
	 * for the condition or exception to apply. 
	 */
	public boolean getSentToMe() {
		return this.sentToMe;
	}
	public void setSentToMe(boolean value) {
		if (this.canSetFieldValue(this.sentToMe, value)) {
			this.sentToMe = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets a value indicating whether the owner of the mailbox must be
	 * either a To or Cc recipient of incoming messages for the condition or
	 * exception to apply. 
	 */
	public boolean getSentToOrCcMe() {
		return this.sentToOrCcMe;
	}

	public void setSentToOrCcMe(boolean value) {
		if (this.canSetFieldValue(this.sentToOrCcMe, value)) {
			this.sentToOrCcMe = value;
			this.changed();
		}
	}


	/**
	 * Gets or sets the sensitivity that must be stamped on incoming messages 
	 * for the condition or exception to apply. 
	 * To disable this predicate, set it
	 * to null.
	 */
	public Sensitivity getSensitivity() {
		return this.sensitivity;
	}
	public void setSensitivity(Sensitivity value) {
		if (this.canSetFieldValue(this.sensitivity, value)) {
		this.sensitivity = value;
		this.changed();
	}
	}

	/**
	 * Gets the date range within which 
	 * incoming messages must have been received 
	 * for the condition or exception to apply. 
	 * To disable this predicate, set both 
	 * its Start and End properties to null.
	 */
	public RulePredicateDateRange getWithinDateRange() {
		return this.withinDateRange;

	}

	/**
	 * Gets the minimum and maximum sizes incoming messages must have for the 
	 * condition or exception to apply. To disable this predicate, set both its 
	 * MinimumSize and MaximumSize properties to null.
	 */
	public RulePredicateSizeRange getWithinSizeRange() {
		return this.withinSizeRange;

	}

	/**
	 * Tries to read element from XML.
	 * @param reader The reader
	 * @throws Exception 
	 * @return True if element was read.
	 */
	@Override
	protected  boolean tryReadElementFromXml(EwsServiceXmlReader
			reader) throws Exception{

		if (reader.getLocalName().equalsIgnoreCase(XmlElementNames.Categories)) {
			this.categories.loadFromXml(reader, reader.getLocalName());
			return true;
		}
		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ContainsBodyStrings))
		{
			this.containsBodyStrings.loadFromXml(reader, reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ContainsHeaderStrings))
		{
			this.containsHeaderStrings.loadFromXml(reader,
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ContainsRecipientStrings))
		{
			this.containsRecipientStrings.loadFromXml(reader, 
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ContainsSenderStrings))
		{
			this.containsSenderStrings.loadFromXml(reader,
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ContainsSubjectOrBodyStrings))
		{
			this.containsSubjectOrBodyStrings.loadFromXml(reader,
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ContainsSubjectStrings))
		{
			this.containsSubjectStrings.loadFromXml(reader,
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.FlaggedForAction))
		{
			this.flaggedForAction = reader.
			readElementValue(FlaggedForAction.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.FromAddresses))
		{
			this.fromAddresses.loadFromXml(reader, reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.FromConnectedAccounts))
		{
			this.fromConnectedAccounts.loadFromXml(reader,
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.HasAttachments))
		{
			this.hasAttachments = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.Importance)) {
			this.importance = reader.readElementValue(Importance.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsApprovalRequest))
		{
			this.isApprovalRequest = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsAutomaticForward))
		{
			this.isAutomaticForward = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsAutomaticReply))
		{
			this.isAutomaticReply = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsEncrypted)) {
			this.isEncrypted = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsMeetingRequest))
		{
			this.isMeetingRequest = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsMeetingResponse))
		{
			this.isMeetingResponse = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsNDR)) {
			this.isNonDeliveryReport = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsPermissionControlled))
		{
			this.isPermissionControlled = reader.
			readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsSigned)) {
			this.isSigned = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsVoicemail)) {
			this.isVoicemail = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.IsReadReceipt))
		{
			this.isReadReceipt = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.ItemClasses)) {
			this.itemClasses.loadFromXml(reader, reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.MessageClassifications))
		{
			this.messageClassifications.loadFromXml(reader, 
					reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.NotSentToMe)) {
			this.notSentToMe = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.SentCcMe)) {
			this.sentCcMe = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.SentOnlyToMe))
		{
			this.sentOnlyToMe = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.SentToAddresses))
		{
			this.sentToAddresses.loadFromXml(reader, reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.SentToMe)) {
			this.sentToMe = reader.readElementValue(Boolean.class);
			return true;
		}
		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.SentToOrCcMe))
		{
			this.sentToOrCcMe = reader.readElementValue(Boolean.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.Sensitivity)) {
			this.sensitivity = reader.readElementValue(Sensitivity.class);
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.WithinDateRange))
		{
			this.withinDateRange.loadFromXml(reader, reader.getLocalName());
			return true;
		}

		else if(reader.getLocalName().equalsIgnoreCase(XmlElementNames.WithinSizeRange))
		{
			this.withinSizeRange.loadFromXml(reader, reader.getLocalName());
			return true;
		}
		else {
			return false;
		}
	}

	/**
	 * Writes elements to XML.
	 * @param writer The writer.
	 * @throws Exception 
	 */
	@Override
	protected  void writeElementsToXml(EwsServiceXmlWriter writer)
	throws Exception {
		if (this.getCategories().getSize() > 0) {
			this.getCategories().writeToXml(writer, XmlElementNames.Categories);
		}

		if (this.getContainsBodyStrings().getSize() > 0) {
			this.getContainsBodyStrings().writeToXml(writer, 
					XmlElementNames.ContainsBodyStrings);
		}

		if (this.getContainsHeaderStrings().getSize() > 0) {
			this.getContainsHeaderStrings().writeToXml(writer, 
					XmlElementNames.ContainsHeaderStrings);
		}

		if (this.getContainsRecipientStrings().getSize() > 0) {
			this.getContainsRecipientStrings().writeToXml(writer,
					XmlElementNames.ContainsRecipientStrings);
		}

		if (this.getContainsSenderStrings().getSize() > 0) {
			this.getContainsSenderStrings().writeToXml(writer, 
					XmlElementNames.ContainsSenderStrings);
		}

		if (this.getContainsSubjectOrBodyStrings().getSize() > 0) {
			this.getContainsSubjectOrBodyStrings().writeToXml(writer, 
					XmlElementNames.ContainsSubjectOrBodyStrings);
		}

		if (this.getContainsSubjectStrings().getSize() > 0) {
			this.getContainsSubjectStrings().writeToXml(writer,
					XmlElementNames.ContainsSubjectStrings);
		}

		if (this.getFlaggedForAction()!=null) {
			writer.writeElementValue(
					XmlNamespace.Types,
					XmlElementNames.FlaggedForAction,
					this.getFlaggedForAction().values());
		}

		if (this.getFromAddresses().getCount() > 0) {
			this.getFromAddresses().writeToXml(writer, 
					XmlElementNames.FromAddresses);
		}

		if (this.getFromConnectedAccounts().getSize() > 0) {
			this.getFromConnectedAccounts().writeToXml(writer,
					XmlElementNames.FromConnectedAccounts);
		}

		if (this.getHasAttachments() != false) {
			writer.writeElementValue(
					XmlNamespace.Types,
					XmlElementNames.HasAttachments,
					this.getHasAttachments());
		}

		if (this.getImportance()!=null) {
			writer.writeElementValue(
					XmlNamespace.Types,
					XmlElementNames.Importance,
					this.getImportance());
		}

		if (this.getIsApprovalRequest() != false) {
			writer.writeElementValue(
					XmlNamespace.Types,
					XmlElementNames.IsApprovalRequest,
					this.getIsApprovalRequest());
		}

		if (this.getIsAutomaticForward() != false) {
			writer.writeElementValue(
					XmlNamespace.Types,
					XmlElementNames.IsAutomaticForward,
					this.getIsAutomaticForward());
		}

		if (this.getIsAutomaticReply() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsAutomaticReply, 
					this.getIsAutomaticReply());
		}

		if (this.getIsEncrypted() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsEncrypted, 
					this.getIsEncrypted());
		}

		if (this.getIsMeetingRequest() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsMeetingRequest, 
					this.getIsMeetingRequest());
		}

		if (this.getIsMeetingResponse() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsMeetingResponse, 
					this.getIsMeetingResponse());
		}

		if (this.getIsNonDeliveryReport() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsNDR,
					this.getIsNonDeliveryReport());
		}

		if (this.getIsPermissionControlled() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsPermissionControlled, 
					this.getIsPermissionControlled());
		}

		if (this.isReadReceipt != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsReadReceipt,
					this.getIsReadReceipt());
		}

		if (this.getIsSigned() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsSigned, 
					this.getIsSigned());
		}

		if (this.getIsVoicemail() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.IsVoicemail, 
					this.getIsVoicemail());
		}

		if (this.getItemClasses().getSize() > 0) {
			this.getItemClasses().writeToXml(writer,
					XmlElementNames.ItemClasses);
		}

		if (this.getMessageClassifications().getSize() > 0) {
			this.getMessageClassifications().writeToXml(writer, 
					XmlElementNames.MessageClassifications);
		}

		if (this.getNotSentToMe() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.NotSentToMe, 
					this.getNotSentToMe());
		}

		if (this.getSentCcMe() != false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.SentCcMe, 
					this.getSentCcMe());
		}

		if (this.getSentOnlyToMe()!= false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.SentOnlyToMe, 
					this.getSentOnlyToMe());
		}

		if (this.getSentToAddresses().getCount() > 0) {
			this.getSentToAddresses().writeToXml(writer,
					XmlElementNames.SentToAddresses);
		}

		if (this.getSentToMe()!= false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.SentToMe, 
					this.getSentToMe());
		}

		if (this.getSentToOrCcMe()!= false) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.SentToOrCcMe, 
					this.getSentToOrCcMe());
		}

		if (this.getSensitivity()!=null) {
			writer.writeElementValue(
					XmlNamespace.Types, 
					XmlElementNames.Sensitivity, 
					this.getSensitivity().values());
		}

		if (this.getWithinDateRange().getStart()!=null || this.getWithinDateRange().getEnd()!=null)
		{
			this.getWithinDateRange().writeToXml(writer, 
					XmlElementNames.WithinDateRange);
		}

		if (this.getWithinSizeRange().getMaximumSize()!=null || this.getWithinSizeRange().getMinimumSize()!=null)
		{
			this.getWithinSizeRange().writeToXml(writer,
					XmlElementNames.WithinSizeRange);
		}
	}

	/**
	 * Validates this instance.
	 */
	@Override
	protected  void internalValidate() throws Exception {
		super.internalValidate();
		EwsUtilities.validateParam(this.fromAddresses, "FromAddresses");
		EwsUtilities.validateParam(this.sentToAddresses, "SentToAddresses");
		EwsUtilities.validateParam(this.withinDateRange, "WithinDateRange");
		EwsUtilities.validateParam(this.withinSizeRange, "WithinSizeRange");
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy