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.response; 025 026import microsoft.exchange.webservices.data.core.EwsServiceXmlReader; 027import microsoft.exchange.webservices.data.core.EwsUtilities; 028import microsoft.exchange.webservices.data.core.ExchangeService; 029import microsoft.exchange.webservices.data.core.XmlElementNames; 030import microsoft.exchange.webservices.data.core.service.ServiceObject; 031import microsoft.exchange.webservices.data.core.service.folder.Folder; 032import microsoft.exchange.webservices.data.core.exception.service.local.ServiceLocalException; 033import org.apache.commons.logging.Log; 034import org.apache.commons.logging.LogFactory; 035 036import java.util.List; 037 038/** 039 * Represents the base response class for individual folder move and copy 040 * operations. 041 */ 042public final class MoveCopyFolderResponse extends ServiceResponse implements 043 IGetObjectInstanceDelegate<ServiceObject> { 044 045 private static final Log LOG = LogFactory.getLog(MoveCopyFolderResponse.class); 046 047 /** 048 * The folder. 049 */ 050 private Folder folder; 051 052 /** 053 * Initializes a new instance of the MoveCopyFolderResponse class. 054 */ 055 public MoveCopyFolderResponse() { 056 super(); 057 } 058 059 /** 060 * Gets Folder instance. 061 * 062 * @param service The service. 063 * @param xmlElementName Name of the XML element. 064 * @return folder 065 * @throws Exception the exception 066 */ 067 private Folder getObjectInstance(ExchangeService service, 068 String xmlElementName) throws Exception { 069 return EwsUtilities.createEwsObjectFromXmlElementName(Folder.class, service, xmlElementName); 070 } 071 072 /** 073 * Reads response elements from XML. 074 * 075 * @param reader The reader. 076 * @throws Exception the exception 077 */ 078 @Override 079 protected void readElementsFromXml(EwsServiceXmlReader reader) 080 throws Exception { 081 super.readElementsFromXml(reader); 082 083 List<Folder> folders; 084 try { 085 folders = reader.readServiceObjectsCollectionFromXml( 086 087 XmlElementNames.Folders, this, false,/* clearPropertyBag */ 088 null, /* requestedPropertySet */ 089 false); /* summaryPropertiesOnly */ 090 091 this.folder = folders.get(0); 092 } catch (ServiceLocalException e) { 093 LOG.error(e); 094 } 095 096 } 097 098 /** 099 * Gets the new (moved or copied) folder. 100 * 101 * @return the folder 102 */ 103 public Folder getFolder() { 104 return folder; 105 } 106 107 /** 108 * Gets the object instance delegate. 109 * 110 * @param service accepts ExchangeService 111 * @param xmlElementName accepts String 112 * @return Object 113 * @throws Exception throws Exception 114 */ 115 @Override 116 public ServiceObject getObjectInstanceDelegate(ExchangeService service, 117 String xmlElementName) throws Exception { 118 return this.getObjectInstance(service, xmlElementName); 119 } 120 121}