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.enumeration.service.ServiceResult; 033 034/** 035 * Represents response to UpdateFolder request. 036 */ 037public final class UpdateFolderResponse extends ServiceResponse implements 038 IGetObjectInstanceDelegate<ServiceObject> { 039 040 /** 041 * The folder. 042 */ 043 private Folder folder; 044 045 /** 046 * Initializes a new instance of the UpdateFolderResponse class. 047 * 048 * @param folder The folder 049 */ 050 public UpdateFolderResponse(Folder folder) { 051 super(); 052 EwsUtilities.ewsAssert(folder != null, "UpdateFolderResponse.ctor", "folder is null"); 053 054 this.folder = folder; 055 } 056 057 /** 058 * Reads response elements from XML. 059 * 060 * @param reader the reader 061 * @throws Exception the exception 062 */ 063 @Override 064 protected void readElementsFromXml(EwsServiceXmlReader reader) 065 throws Exception { 066 super.readElementsFromXml(reader); 067 068 reader.readServiceObjectsCollectionFromXml(XmlElementNames.Folders, 069 this, false, /* clearPropertyBag */ 070 null, /* requestedPropertySet */ 071 false); /* summaryPropertiesOnly */ 072 } 073 074 /** 075 * Clears the change log of the updated folder if the update succeeded. 076 */ 077 @Override 078 protected void loaded() { 079 if (this.getResult() == ServiceResult.Success) { 080 this.folder.clearChangeLog(); 081 } 082 } 083 084 /** 085 * Gets Folder instance. 086 * 087 * @param session The session 088 * @param xmlElementName Name of the XML element. 089 * @return Folder 090 */ 091 private Folder getObjectInstance(ExchangeService session, 092 String xmlElementName) { 093 return this.folder; 094 } 095 096 /** 097 * Gets the object instance delegate. 098 * 099 * @param service accepts ExchangeService 100 * @param xmlElementName accepts String 101 * @return Object 102 * @throws Exception throws Exception 103 */ 104 @Override 105 public ServiceObject getObjectInstanceDelegate(ExchangeService service, 106 String xmlElementName) throws Exception { 107 return this.getObjectInstance(service, xmlElementName); 108 } 109}