package com.qxueyou.scc.base.model; import com.qxueyou.scc.base.util.CollectionUtils; import java.io.Serializable; import java.util.HashMap; import java.util.Map; /** * 操作结果类 接口统一返回数据类型 * * { * "result": 返回结果(boolean值), * "data": 返回数据(object), * "msg": 返回消息, * } * * @author zhiyong * */ public class Result implements Serializable { private static final long serialVersionUID = -9024761391789730558L; /** 成功:true,失败:false */ private boolean success; /** 返回编码 */ private int resultCode ; /** 返回消息 */ private String msg; /** 结果数据 */ private Object data; public static final String MSG_SUCCESS = "success"; public static final String MSG_FAIL = "fail"; /** * 非法请求状态码 */ public static final int CODE_FORBIDDEN = 403; public static final Result SUCCESS = new Result(true); public static final Result FAIL = new Result(false); public Result() { super(); } public Result(boolean success){ this.success=success; } public Result( boolean success,int resultCode ){ this.success=success; this.resultCode = resultCode ; } public Result( boolean success,int resultCode,String msg){ this.success=success; this.resultCode = resultCode ; this.msg=msg; } public Result(boolean success,String msg){ this.success=success; this.msg=msg; } public Result(boolean success,String msg, Object data){ this.success=success; this.msg=msg; this.data=data; } public Result(boolean success, Object... objs) { this.success = success; this.msg = success ? MSG_SUCCESS : MSG_FAIL; this.data = CollectionUtils.newObjectMap(objs); } public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public void setResult(boolean success) { this.success = success; } public Boolean getSuccess() { return success; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public int getResultCode() { return resultCode; } public void setResultCode(int resultCode) { this.resultCode = resultCode; } @SuppressWarnings("rawtypes") public Object getData(String key) { if(data!=null && Map.class.isAssignableFrom(data.getClass())) { return ((Map)data).get(key); } return null; } @SuppressWarnings({ "rawtypes", "unchecked" }) public T getDataT(String key) { if(data!=null && Map.class.isAssignableFrom(data.getClass())) { return (T)((Map)data).get(key); } return null; } @SuppressWarnings({ "unchecked", "rawtypes" }) public void addData(String key,Object value) { if(data!=null && Map.class.isAssignableFrom(data.getClass())) { ((Map)data).put(key, value); return; } Map map = new HashMap(1); map.put(key, value); this.data = map; } }