public interface IErrorCode {
/**
* 错误编码
*
* @return
*/
String getCode();
/**
* 错误内容
*
* @return
*/
String getMessage();
}
public enum CommonResultCode implements IErrorCode {
/**
* 调用成功
*/
Success("successful."),
/**
* 未定义错误
*/
UndefinedError("undefined error:%s.");
private String message;
private CommonResultCode(String message) {
this.message = message;
}
@Override
public String getCode() {
return this.name();
}
@Override
public String getMessage() {
return this.message;
}
}
@SuppressWarnings("unchecked")
public class BaseResult implements Serializable {
private static final long serialVersionUID = 7801949203978416054L;
/**
* 标识本次调用是否返回
*/
private boolean success;
/**
* 本次调用返回code,一般为错误代码
*/
private String code;
/**
* 本次调用返回的消息,一般为错误消息
*/
private String message;
public BaseResult() {
this.code = CommonResultCode.Success.getCode();
this.success = true;
this.message = CommonResultCode.Success.getMessage();
}
/**
* 设置错误信息
*
* @param code
* @param message
*/
public <R extends BaseResult> R setError(String code, String message) {
this.code = code;
this.success = false;
this.message = message;
return (R) this;
}
/**
* 设置错误信息
*
* @param errcode
* @param args
* @return
*/
public <R extends BaseResult> R setError(IErrorCode errcode, Object... args) {
this.code = errcode.getCode();
this.success = false;
String err = errcode.getMessage();
if (args == null || args.length == 0) {
this.message = err;
} else {
this.message = String.format(err, args);
}
return (R) this;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
public class ListResult<T> extends BaseResult {
private static final long serialVersionUID = 5741020370203813418L;
/**
* 当前返回的数据列表,其数目可以等于count,也可以小于count(分页时)
*/
private List<T> data;
/**
* 根据查询条件可以获得的所有数据总条数
*/
private int count;
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
public class PageResult<T> extends ListResult<T> {
private static final long serialVersionUID = -6934915596085958833L;
private int currentPage = 1;
private int pageSize = 20;
private int totalCount;
public PageResult() {
}
public PageResult(int currentPage, int pageSize) {
if (currentPage > 0) {
this.currentPage = currentPage;
}
if (pageSize > 0) {
this.pageSize = pageSize;
}
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
}