package com.sudosaints.excusepro.util;
import java.io.Serializable;
import java.util.Map;
import org.codehaus.jackson.annotate.JsonIgnore;
public class ApiResponse implements Serializable {
private static final long serialVersionUID = 1L;
public static class ApiError implements Serializable {
private static final long serialVersionUID = 1L;
int code;
String message;
public ApiError() {
}
public ApiError(int code, String message) {
this.code = code;
this.message = message;
}
public static final ApiError GENERAL_ERROR = new ApiError(500, "Error");
public static final ApiError COMMUNICATION_ERROR = new ApiError(501, "Unable to communicate with server");
public static final ApiError RESPONSE_ERROR = new ApiError(502, "Bad Response Format");
public static final ApiError API_VERSION_MISMATCH = new ApiError(503, "API Version Mismatch");
public static final ApiError MISSING_CONTENT_TYPE_HEADER = new ApiError(504, "Missing Content Type Header");
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
boolean success;
Object data;
ApiError error;
@JsonIgnore
private Object resultDataObject;
public ApiResponse() {
}
public ApiResponse(boolean success, Map<String, Object> data, String message) {
this.success = success;
this.data = data;
if (!success) {
this.error = new ApiError(500, message);
}
}
public boolean isSuccess() {
return success;
}
public ApiResponse setSuccess(boolean success) {
this.success = success;
return this;
}
public Object getData() {
return data;
}
public ApiResponse setData(Object data) {
this.data = data;
return this;
}
public ApiError getError() {
return error;
}
public ApiResponse setError(ApiError error) {
this.error = error;
if (error!=null) {
success = false;
}
return this;
}
public Object getResultDataObject() {
return resultDataObject;
}
public ApiResponse setResultDataObject(Object resultDataObject) {
this.resultDataObject = resultDataObject;
return this;
}
}