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.request;
025
026import microsoft.exchange.webservices.data.core.EwsServiceXmlReader;
027import microsoft.exchange.webservices.data.core.EwsServiceXmlWriter;
028import microsoft.exchange.webservices.data.core.ExchangeService;
029import microsoft.exchange.webservices.data.core.XmlElementNames;
030import microsoft.exchange.webservices.data.core.response.PlayOnPhoneResponse;
031import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
032import microsoft.exchange.webservices.data.core.enumeration.misc.XmlNamespace;
033import microsoft.exchange.webservices.data.property.complex.ItemId;
034
035/**
036 * Represents a PlayOnPhone request.
037 */
038public final class PlayOnPhoneRequest extends SimpleServiceRequestBase<PlayOnPhoneResponse> {
039
040  /**
041   * The item id.
042   */
043  private ItemId itemId;
044
045  /**
046   * The dial string.
047   */
048  private String dialString;
049
050  /**
051   * Initializes a new instance of the PlayOnPhoneRequest class.
052   *
053   * @param service the service
054   * @throws Exception
055   */
056  public PlayOnPhoneRequest(ExchangeService service)
057      throws Exception {
058    super(service);
059  }
060
061  /**
062   * Gets the name of the XML element.
063   *
064   * @return XML element name.
065   */
066  @Override public String getXmlElementName() {
067    return XmlElementNames.PlayOnPhone;
068  }
069
070  /**
071   * Writes XML elements.
072   *
073   * @param writer the writer
074   * @throws Exception the exception
075   */
076  @Override
077  protected void writeElementsToXml(EwsServiceXmlWriter writer)
078      throws Exception {
079    this.itemId.writeToXml(writer, XmlNamespace.Messages,
080        XmlElementNames.ItemId);
081    writer.writeElementValue(XmlNamespace.Messages,
082        XmlElementNames.DialString, dialString);
083  }
084
085  /**
086   * Gets the name of the response XML element.
087   *
088   * @return XML element name,
089   */
090  @Override
091  protected String getResponseXmlElementName() {
092    return XmlElementNames.PlayOnPhoneResponse;
093  }
094
095  /**
096   * {@inheritDoc}
097   */
098  @Override
099  protected PlayOnPhoneResponse parseResponse(EwsServiceXmlReader reader)
100      throws Exception {
101    PlayOnPhoneResponse serviceResponse = new PlayOnPhoneResponse(this
102        .getService());
103    serviceResponse
104        .loadFromXml(reader, XmlElementNames.PlayOnPhoneResponse);
105    return serviceResponse;
106  }
107
108  /**
109   * Gets the request version.
110   *
111   * @return Earliest Exchange version in which this request is supported.
112   */
113  @Override
114  protected ExchangeVersion getMinimumRequiredServerVersion() {
115    return ExchangeVersion.Exchange2010;
116  }
117
118  /**
119   * Executes this request.
120   *
121   * @return Service response.
122   * @throws Exception the exception
123   */
124  public PlayOnPhoneResponse execute() throws Exception {
125    PlayOnPhoneResponse serviceResponse = internalExecute();
126    serviceResponse.throwIfNecessary();
127    return serviceResponse;
128  }
129
130  /**
131   * Gets the item id of the message to play.
132   *
133   * @return the item id
134   */
135  protected ItemId getItemId() {
136    return this.itemId;
137  }
138
139  /**
140   * Sets the item id.
141   *
142   * @param itemId the new item id
143   */
144  public void setItemId(ItemId itemId) {
145    this.itemId = itemId;
146  }
147
148  /**
149   * Gets  the dial string.
150   *
151   * @return the dial string
152   */
153  protected String getDialString() {
154    return this.dialString;
155  }
156
157  /**
158   * Sets the dial string.
159   *
160   * @param dialString the new dial string
161   */
162  public void setDialString(String dialString) {
163    this.dialString = dialString;
164  }
165
166}