quartzPro/.svn/pristine/9c/9c6761fb524730184dcea7c0adf...

94 lines
2.5 KiB
Plaintext

package com.ifish.jpush.common.resp;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public abstract class BaseResult implements IRateLimiting {
public static final int ERROR_CODE_NONE = -1;
public static final int ERROR_CODE_OK = 0;
public static final String ERROR_MESSAGE_NONE = "None error message.";
protected static final int RESPONSE_OK = 200;
protected static Gson _gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
private ResponseWrapper responseWrapper;
public void setResponseWrapper(ResponseWrapper responseWrapper) {
this.responseWrapper = responseWrapper;
}
public String getOriginalContent() {
if (null != responseWrapper) {
return responseWrapper.responseContent;
}
return null;
}
public int getResponseCode() {
if(null != responseWrapper) {
return responseWrapper.responseCode;
}
return -1;
}
public boolean isResultOK() {
if(null != responseWrapper) {
return ( responseWrapper.responseCode / 200 ) == 1;
}
return false;
}
public static <T extends BaseResult> T fromResponse(
ResponseWrapper responseWrapper, Class<T> clazz) {
T result = null;
if (responseWrapper.isServerResponse()) {
result = _gson.fromJson(responseWrapper.responseContent, clazz);
} else {
try {
result = clazz.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
if(result!=null){
result.setResponseWrapper(responseWrapper);
}
return result;
}
@Override
public int getRateLimitQuota() {
if (null != responseWrapper) {
return responseWrapper.rateLimitQuota;
}
return 0;
}
@Override
public int getRateLimitRemaining() {
if (null != responseWrapper) {
return responseWrapper.rateLimitRemaining;
}
return 0;
}
@Override
public int getRateLimitReset() {
if (null != responseWrapper) {
return responseWrapper.rateLimitReset;
}
return 0;
}
@Override
public String toString() {
return _gson.toJson(this);
}
}