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.autodiscover.exception.error;
025
026import microsoft.exchange.webservices.data.autodiscover.enumeration.AutodiscoverErrorCode;
027import microsoft.exchange.webservices.data.core.EwsXmlReader;
028import microsoft.exchange.webservices.data.core.XmlElementNames;
029import microsoft.exchange.webservices.data.core.enumeration.misc.XmlNamespace;
030import microsoft.exchange.webservices.data.security.XmlNodeType;
031
032/**
033 * Represents an error from a GetUserSettings request.
034 */
035public final class UserSettingError {
036
037  /**
038   * The error code.
039   */
040  private AutodiscoverErrorCode errorCode;
041
042  /**
043   * The error message.
044   */
045  private String errorMessage;
046
047  /**
048   * The setting name.
049   */
050  private String settingName;
051
052  /**
053   * Initializes a new instance of the "UserSettingError" class.
054   */
055  public UserSettingError() {
056  }
057
058  /**
059   * Initializes a new instance of the "UserSettingError" class.
060   *
061   * @param errorCode    The error code
062   * @param errorMessage The error message
063   * @param settingName  Name of the setting
064   */
065  protected UserSettingError(AutodiscoverErrorCode errorCode,
066      String errorMessage, String settingName) {
067    this.errorCode = errorCode;
068    this.errorMessage = errorMessage;
069    this.settingName = settingName;
070  }
071
072
073  /**
074   * Loads from XML.
075   *
076   * @param reader The reader.
077   * @throws Exception the exception
078   */
079  public void loadFromXml(EwsXmlReader reader) throws Exception {
080    do {
081      reader.read();
082
083      if (reader.getNodeType().getNodeType() == XmlNodeType.START_ELEMENT) {
084        if (reader.getLocalName().equals(XmlElementNames.ErrorCode)) {
085          this.setErrorCode(reader
086              .readElementValue(AutodiscoverErrorCode.class));
087        } else if (reader.getLocalName().equals(
088            XmlElementNames.ErrorMessage)) {
089          this.setErrorMessage(reader.readElementValue());
090        } else if (reader.getLocalName().equals(
091            XmlElementNames.SettingName)) {
092          this.setSettingName(reader.readElementValue());
093        }
094      }
095    } while (!reader.isEndElement(XmlNamespace.Autodiscover,
096        XmlElementNames.UserSettingError));
097  }
098
099  /**
100   * Gets the error code.
101   *
102   * @return The error code.
103   */
104  public AutodiscoverErrorCode getErrorCode() {
105    return errorCode;
106  }
107
108  public void setErrorCode(AutodiscoverErrorCode errorCode) {
109    this.errorCode = errorCode;
110  }
111
112  /**
113   * Gets the error message.
114   *
115   * @return The error message.
116   */
117  public String getErrorMessage() {
118    return errorMessage;
119  }
120
121  public void setErrorMessage(String errorMessage) {
122    this.errorMessage = errorMessage;
123  }
124
125
126  /**
127   * Gets the name of the setting.
128   *
129   * @return The name of the setting.
130   */
131  public String getSettingName() {
132    return settingName;
133  }
134
135  public void setSettingName(String settingName) {
136    this.settingName = settingName;
137  }
138
139}