/**
* Copyright (c) 2010-2016 by the respective copyright holders.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.openhab.binding.ecobee.messages;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
/**
* Base class for all Ecobee authorization responses. The members of this abstract class will de-serialize to
* <code>null</code>s if there was no error, but the concrete subclasses will instead be filled in.
*
* @see <a href="https://www.ecobee.com/home/developer/api/documentation/v1/auth/auth-req-resp.shtml">Authorization
* Requests and Errors</a>
* @author John Cocula
* @since 1.7.0
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class AbstractAuthResponse extends AbstractMessage implements Response {
@JsonProperty("error")
private String error;
@JsonProperty("error_description")
private String errorDescription;
@JsonProperty("error_uri")
private String errorURI;
/**
* @return the error type
*/
@JsonProperty("error")
public String getError() {
return this.error;
}
/**
* @return the error description
*/
@JsonProperty("error_description")
public String getErrorDescription() {
return this.errorDescription;
}
/**
* @return the error URI, explaining why this error may have occurred.
*/
@JsonProperty("error_uri")
public String getErrorURI() {
return this.errorURI;
}
@Override
public String getResponseMessage() {
return this.error;
}
@Override
public boolean isError() {
return this.error != null;
}
@Override
public String toString() {
final ToStringBuilder builder = createToStringBuilder();
builder.appendSuper(super.toString());
if (this.error != null) {
builder.append("error", this.error);
}
if (this.errorDescription != null) {
builder.append("errorDescription", this.errorDescription);
}
if (this.errorURI != null) {
builder.append("errorURI", this.errorURI);
}
return builder.toString();
}
}