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}