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.EwsServiceXmlWriter; 027import microsoft.exchange.webservices.data.core.ExchangeService; 028import microsoft.exchange.webservices.data.core.XmlAttributeNames; 029import microsoft.exchange.webservices.data.core.XmlElementNames; 030import microsoft.exchange.webservices.data.core.response.GetDelegateResponse; 031import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion; 032import microsoft.exchange.webservices.data.core.enumeration.misc.XmlNamespace; 033import microsoft.exchange.webservices.data.core.exception.service.local.ServiceXmlSerializationException; 034import microsoft.exchange.webservices.data.property.complex.UserId; 035 036import java.util.ArrayList; 037import java.util.List; 038 039/** 040 * Represents a GetDelegate request. 041 */ 042public class GetDelegateRequest extends 043 DelegateManagementRequestBase<GetDelegateResponse> { 044 045 /** 046 * The user ids. 047 */ 048 private List<UserId> userIds = new ArrayList<UserId>(); 049 050 /** 051 * The include permissions. 052 */ 053 private boolean includePermissions; 054 055 /** 056 * Initializes a new instance of the class. 057 * 058 * @param service the service 059 * @throws Exception 060 */ 061 public GetDelegateRequest(ExchangeService service) 062 throws Exception { 063 super(service); 064 } 065 066 /** 067 * Creates the response. 068 * 069 * @return Service response. 070 */ 071 @Override 072 protected GetDelegateResponse createResponse() { 073 return new GetDelegateResponse(true); 074 } 075 076 /** 077 * Writes XML attribute. 078 * 079 * @param writer the writer 080 * @throws ServiceXmlSerializationException the service xml serialization exception 081 */ 082 @Override 083 protected void writeAttributesToXml(EwsServiceXmlWriter writer) 084 throws ServiceXmlSerializationException { 085 super.writeAttributesToXml(writer); 086 writer.writeAttributeValue(XmlAttributeNames.IncludePermissions, this 087 .getIncludePermissions()); 088 } 089 090 /** 091 * Writes the elements to XML. 092 * 093 * @param writer the writer 094 * @throws Exception the exception 095 */ 096 @Override 097 protected void writeElementsToXml(EwsServiceXmlWriter writer) 098 throws Exception { 099 super.writeElementsToXml(writer); 100 101 if (this.getUserIds().size() > 0) { 102 writer.writeStartElement(XmlNamespace.Messages, 103 XmlElementNames.UserIds); 104 105 for (UserId userId : this.getUserIds()) { 106 userId.writeToXml(writer, XmlElementNames.UserId); 107 } 108 109 writer.writeEndElement(); // UserIds 110 } 111 } 112 113 /** 114 * Gets the name of the response XML element. 115 * 116 * @return XML element name 117 */ 118 @Override 119 protected String getResponseXmlElementName() { 120 return XmlElementNames.GetDelegateResponse; 121 } 122 123 /** 124 * Gets the name of the XML element. 125 * 126 * @return XML element name 127 */ 128 @Override public String getXmlElementName() { 129 return XmlElementNames.GetDelegate; 130 } 131 132 /** 133 * Gets the request version. 134 * 135 * @return Earliest Exchange version in which this request is supported 136 */ 137 @Override 138 protected ExchangeVersion getMinimumRequiredServerVersion() { 139 return ExchangeVersion.Exchange2007_SP1; 140 } 141 142 /** 143 * Gets the user ids. 144 * 145 * @return the user ids 146 */ 147 public List<UserId> getUserIds() { 148 return this.userIds; 149 } 150 151 /** 152 * Gets a value indicating whether permissions are included. 153 * 154 * @return the include permissions 155 */ 156 public boolean getIncludePermissions() { 157 return this.includePermissions; 158 159 } 160 161 /** 162 * Sets the include permissions. 163 * 164 * @param includePermissions the new include permissions 165 */ 166 public void setIncludePermissions(boolean includePermissions) { 167 this.includePermissions = includePermissions; 168 } 169}