<pre name="code" class="java">類BaseResult.java的實現描述:通用的執行結果
package com.api.result;
import java.io.Serializable;
import java.util.List;
/**
* 類BaseResult.java的實現描述:通用的執行結果
*
* @author wanglf 2016-3-3 17:24:15
*/
public class Result<T> implements Serializable {
private static final long serialVersionUID = -2368446516546812379L;
/**
* 請求唯一ID
*/
private String requestId;
/**
* result data
*/
private T data;
/**
* 國際化以後前端需要根據code 和 這個param裏的動態信息來構成錯誤信息
*
* @see The Instance {0} is out of date,the endDate is {1} !
* ["atx1","2015-01-01"]
*/
private List<String> errorParams;
/**
* 是否是冪等返回
*/
private Boolean tokenConflicted;
/**
* 成功標記
*/
private boolean success;
/**
* 操作結果代碼 如:LX_CREATE_ORDER_FAILED ,籠統的錯誤代碼,由於openapi已經在使用,這裏的錯誤碼不能輕易改動
*/
private String code;
/**
* 詳細的錯誤code ,add 的,後續接入的 如果要細化錯誤code 展示,就使用這個。如:國際化翻譯的錯誤code
*/
private String errCode;
/**
* 操作消息
*/
private String message;
/**
* pop調用中的可能使用的動態錯誤碼
*/
private String dynamicCode;
/**
* pop調用中可能使用的動態信息
*/
private String dynamicMessage;
public Result() {
}
public Result(T t, String requestId) {
setSuccess(true);
setData(t);
setRequestId(requestId);
}
public Result(T t) {
setSuccess(true);
setData(t);
}
public Result(boolean isSuccess, T t, String requestId) {
setSuccess(isSuccess);
setData(t);
setRequestId(requestId);
}
public Result(boolean isSuccess, String requestId) {
setSuccess(isSuccess);
setRequestId(requestId);
}
public Result(String code, String message, String requestId) {
setSuccess(false);
setCode(code);
setMessage(message);
setRequestId(requestId);
}
public Result(String code, String message) {
setSuccess(false);
setCode(code);
setMessage(message);
}
public Result(boolean isSuccess, String code, String message, T t) {
setSuccess(isSuccess);
setCode(code);
setMessage(message);
setData(t);
}
public Result(boolean isSuccess, String code, String message) {
setSuccess(isSuccess);
setCode(code);
setMessage(message);
}
public Result(boolean isSuccess, String message, T t) {
setSuccess(isSuccess);
setMessage(message);
setData(t);
}
/**
* @return Result<T>
*/
public static <T> Result<T> create() {
return new Result<T>();
}
/**
* 新增快速創建Result的方法,不用謝我,請叫我雷鋒... ^.^ -Shaka create Result<T> Object for
* successful cases.
*
* @param data result data
* @return Result<T>
*/
public static <T> Result<T> create(T data) {
Result<T> result = Result.create();
result.setSuccess(true);
result.setData(data);
return result;
}
/**
* 接口調用成功時也需要code和message的場景
*
* @param data
* @param code
* @param message
* @return
*/
public static <T> Result<T> create(T data, String code, String message) {
Result<T> result = Result.create();
result.setSuccess(true);
result.setData(data);
result.setCode(code);
result.setMessage(message);
return result;
}
/**
* 接口調用成功時也需要code和message的場景,添加動態code 和 動態message信息
*
* @param data
* @param code
* @param message
* @param requestId
* @param dynamicCode
* @param dynamicMessage
* @return
*/
public static <T> Result<T> create(T data, String code, String message, String requestId, String dynamicCode,
String dynamicMessage) {
Result<T> result = Result.create();
result.setSuccess(true);
result.setData(data);
result.setCode(code);
result.setMessage(message);
result.setRequestId(requestId);
result.setDynamicCode(dynamicCode);
result.setDynamicMessage(dynamicMessage);
return result;
}
/**
* 接口調用成功時也需要code和message的場景
*
* @param data
* @param code
* @param message
* @param requestId
* @return
*/
public static <T> Result<T> create(T data, String code, String message, String requestId) {
Result<T> result = Result.create();
result.setSuccess(true);
result.setData(data);
result.setCode(code);
result.setMessage(message);
result.setRequestId(requestId);
return result;
}
/**
* create Result<T> Object for unsuccessful cases.
*
* @param code result code
* @param message result code
* @return Result<T>
*/
public static <T> Result<T> create(String code, String message) {
Result<T> result = Result.create();
result.setSuccess(false);
result.setCode(code);
result.setMessage(message);
return result;
}
/**
* create Result<T> Object for unsuccessful cases.
*
* @param code result code
* @param message result code
* @return Result<T>
*/
public static <T> Result<T> create(String code, String message, String requestId) {
Result<T> result = Result.create();
result.setSuccess(false);
result.setCode(code);
result.setMessage(message);
result.setRequestId(requestId);
return result;
}
/**
* create Result<T> Object for unsuccessful cases.
*
* @param code result code
* @param message result code
* @return Result<T>
*/
public static <T> Result<T> create(String code, String message, String requestId, String dynamicMessage) {
Result<T> result = Result.create();
result.setSuccess(false);
result.setCode(code);
result.setMessage(message);
result.setRequestId(requestId);
result.setDynamicMessage(dynamicMessage);
return result;
}
/**
* @return the success
*/
public boolean isSuccess() {
return success;
}
/**
* @param success the success to set
*/
public void setSuccess(boolean success) {
this.success = success;
}
/**
* @return the code
*/
public String getCode() {
return code;
}
/**
* @param code the code to set
*/
public void setCode(String code) {
this.code = code;
}
/**
* @return the message
*/
public String getMessage() {
return message;
}
/**
* @param message the message to set
*/
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public List<String> getErrorParams() {
return errorParams;
}
public void setErrorParams(List<String> errorParams) {
this.errorParams = errorParams;
}
public Boolean getTokenConflicted() {
return tokenConflicted;
}
public void setTokenConflicted(Boolean tokenConflicted) {
this.tokenConflicted = tokenConflicted;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public String getDynamicCode() {
return dynamicCode;
}
public void setDynamicCode(String dynamicCode) {
this.dynamicCode = dynamicCode;
}
public String getDynamicMessage() {
return dynamicMessage;
}
public void setDynamicMessage(String dynamicMessage) {
this.dynamicMessage = dynamicMessage;
}
@Override
public String toString() {
return "Result [requestId=" + requestId + ", data=" + data + ", errorParams=" + errorParams
+ ", tokenConflicted=" + tokenConflicted + ", success=" + success + ", code=" + code + ", errCode="
+ errCode + ", message=" + message + ", dynamicCode=" + dynamicCode + ", dynamicMessage="
+ dynamicMessage + "]";
}
}