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

microsoft.exchange.webservices.data.core.request.UploadItemsRequest Maven / Gradle / Ivy

package microsoft.exchange.webservices.data.core.request;

import microsoft.exchange.webservices.data.core.*;
import microsoft.exchange.webservices.data.core.enumeration.misc.*;
import microsoft.exchange.webservices.data.core.enumeration.service.error.*;
import microsoft.exchange.webservices.data.core.response.*;
import microsoft.exchange.webservices.data.core.service.item.*;

import java.util.*;

public class UploadItemsRequest extends MultiResponseServiceRequest {

  private List items;

  /**
   * The item ids.
   */

  /**
   * Initializes a new instance of the class.
   *
   * @param service           the service
   * @param errorHandlingMode the error handling mode
   * @throws Exception
   */
  public UploadItemsRequest(ExchangeService service, ServiceErrorHandling errorHandlingMode)
          throws Exception {
    super(service, errorHandlingMode);
  }

  /**
   * Validate request.
   *
   * @throws Exception the exception
   */
  @Override
  protected void validate() throws Exception {
    super.validate();
    EwsUtilities.validateParam(items, "items");
    for (UploadItem i : items) {
      i.validate();
    }
  }

  /**
   * Gets the expected response message count.
   *
   * @return Number of expected response messages
   */
  @Override
  protected int getExpectedResponseMessageCount() {
    return items.size();
  }

  /**
   * Creates the service response.
   *
   * @param service       the service
   * @param responseIndex the response index
   * @return Service response.
   */
  @Override
  protected UploadItemsResponse createServiceResponse(ExchangeService service,
                                                      int responseIndex) {
    return new UploadItemsResponse();
  }

  /**
   * Gets the name of the XML element.
   *
   * @return XML element name
   */
  @Override
  public String getXmlElementName() {
    return XmlElementNames.UploadItems;
  }

  /**
   * Gets the name of the response XML element.
   *
   * @return XML element name
   */
  @Override
  protected String getResponseXmlElementName() {
    return XmlElementNames.UploadItemsResponse;
  }

  /**
   * Gets the name of the response message XML element.
   *
   * @return XML element name
   */
  @Override
  protected String getResponseMessageXmlElementName() {
    return XmlElementNames.UploadItemsResponseMessage;
  }

  /**
   * Writes XML elements.
   *
   * @param writer the writer
   * @throws Exception the exception
   */
  @Override
  protected void writeElementsToXml(EwsServiceXmlWriter writer)
          throws Exception {
    if (!items.isEmpty()) {
      writer.writeStartElement(XmlNamespace.Messages, XmlElementNames.Items);
      items.stream().forEach(item -> item.writeToXml(writer));
      writer.writeEndElement();
    }
  }

  /**
   * Gets the request version.
   *
   * @return Earliest Exchange version in which this request is supported.
   */
  @Override
  protected ExchangeVersion getMinimumRequiredServerVersion() {
    return ExchangeVersion.Exchange2010_SP1;
  }

  public void setItems(List items) {
    this.items = items;
  }

  public List getItems() {
    return items;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy