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
024 package microsoft.exchange.webservices.data.property.complex;
025
026 import microsoft.exchange.webservices.data.core.EwsServiceXmlReader;
027 import microsoft.exchange.webservices.data.core.XmlElementNames;
028 import microsoft.exchange.webservices.data.misc.OutParam;
029
030 /**
031 * Represents information for a managed folder.
032 */
033 public final class ManagedFolderInformation extends ComplexProperty {
034
035 /**
036 * The can delete.
037 */
038 private Boolean canDelete;
039
040 /**
041 * The can rename or move.
042 */
043 private Boolean canRenameOrMove;
044
045 /**
046 * The must display comment.
047 */
048 private Boolean mustDisplayComment;
049
050 /**
051 * The has quota.
052 */
053 private Boolean hasQuota;
054
055 /**
056 * The is managed folder root.
057 */
058 private Boolean isManagedFoldersRoot;
059
060 /**
061 * The managed folder id.
062 */
063 private String managedFolderId;
064
065 /**
066 * The comment.
067 */
068 private String comment;
069
070 /**
071 * The storage quota.
072 */
073 private Integer storageQuota;
074
075 /**
076 * The folder size.
077 */
078 private Integer folderSize;
079
080 /**
081 * The home page.
082 */
083 private String homePage;
084
085 /**
086 * Initializes a new instance of the ManagedFolderInformation class.
087 */
088 public ManagedFolderInformation() {
089 super();
090 }
091
092 /**
093 * Tries to read element from XML.
094 *
095 * @param reader the reader
096 * @return True if element was read.
097 * @throws Exception the exception
098 */
099 public boolean tryReadElementFromXml(EwsServiceXmlReader reader)
100 throws Exception {
101 if (reader.getLocalName().equalsIgnoreCase(XmlElementNames.CanDelete)) {
102 this.canDelete = reader.readValue(Boolean.class);
103 return true;
104 } else if (reader.getLocalName().equalsIgnoreCase(
105 XmlElementNames.CanRenameOrMove)) {
106 this.canRenameOrMove = reader.readValue(Boolean.class);
107 return true;
108 } else if (reader.getLocalName().equalsIgnoreCase(
109 XmlElementNames.MustDisplayComment)) {
110 this.mustDisplayComment = reader.readValue(Boolean.class);
111 return true;
112 } else if (reader.getLocalName().equalsIgnoreCase(
113 XmlElementNames.HasQuota)) {
114 this.hasQuota = reader.readValue(Boolean.class);
115 return true;
116 } else if (reader.getLocalName().equalsIgnoreCase(
117 XmlElementNames.IsManagedFoldersRoot)) {
118 this.isManagedFoldersRoot = reader.readValue(Boolean.class);
119 return true;
120 } else if (reader.getLocalName().equalsIgnoreCase(
121 XmlElementNames.ManagedFolderId)) {
122 this.managedFolderId = reader.readValue();
123 return true;
124 } else if (reader.getLocalName().equalsIgnoreCase(
125 XmlElementNames.Comment)) {
126 OutParam<String> value = new OutParam<String>();
127 reader.tryReadValue(value);
128 this.comment = value.getParam();
129 return true;
130 } else if (reader.getLocalName().equalsIgnoreCase(
131 XmlElementNames.StorageQuota)) {
132 this.storageQuota = reader.readValue(Integer.class);
133 return true;
134 } else if (reader.getLocalName().equalsIgnoreCase(
135 XmlElementNames.FolderSize)) {
136 this.folderSize = reader.readValue(Integer.class);
137 return true;
138 } else if (reader.getLocalName().equalsIgnoreCase(
139 XmlElementNames.HomePage)) {
140 OutParam<String> value = new OutParam<String>();
141 reader.tryReadValue(value);
142 this.homePage = value.getParam();
143 return true;
144 } else {
145 return false;
146 }
147
148 }
149
150 /**
151 * Gets a value indicating whether the user can delete objects in the
152 * folder.
153 *
154 * @return the can delete
155 */
156 public Boolean getCanDelete() {
157 return this.canDelete;
158 }
159
160 /**
161 * Gets a value indicating whether the user can rename or move objects in
162 * the folder.
163 *
164 * @return the can rename or move
165 */
166 public Boolean getCanRenameOrMove() {
167 return canRenameOrMove;
168 }
169
170 /**
171 * Gets a value indicating whether the client application must display the
172 * Comment property to the user.
173 *
174 * @return the must display comment
175 */
176 public Boolean getMustDisplayComment() {
177 return mustDisplayComment;
178 }
179
180 /**
181 * Gets a value indicating whether the folder has a quota.
182 *
183 * @return the checks for quota
184 */
185 public Boolean getHasQuota() {
186 return hasQuota;
187 }
188
189 /**
190 * Gets a value indicating whether the folder is the root of the managed
191 * folder hierarchy.
192 *
193 * @return the checks if is managed folder root
194 */
195 public Boolean getIsManagedFoldersRoot() {
196 return isManagedFoldersRoot;
197 }
198
199 /**
200 * Gets the Managed Folder Id of the folder.
201 *
202 * @return the managed folder id
203 */
204 public String getManagedFolderId() {
205 return managedFolderId;
206 }
207
208 /**
209 * Gets the comment associated with the folder.
210 *
211 * @return the comment
212 */
213 public String getComment() {
214 return comment;
215 }
216
217 /**
218 * Gets the storage quota of the folder.
219 *
220 * @return the storage quota
221 */
222 public Integer getStorageQuota() {
223 return storageQuota;
224 }
225
226 /**
227 * Gets the size of the folder.
228 *
229 * @return the folder size
230 */
231 public Integer getFolderSize() {
232 return folderSize;
233 }
234
235 /**
236 * Gets the home page associated with the folder.
237 *
238 * @return the home page
239 */
240 public String getHomePage() {
241 return homePage;
242 }
243
244 }