ResultInfo.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. package com.honter.allexception;
  2. /**
  3. * 客户端的HTTP调用的应答结果类
  4. */
  5. public class ResultInfo {
  6. /**
  7. * 应答结果状态码——成功
  8. */
  9. public static final int RESULT_CODE_SUCCESS = 0;
  10. /**
  11. * 应答结果状态码——通用错误
  12. */
  13. public static final int RESULT_CODE_COMMONERR = 9999;
  14. /**
  15. * session过期
  16. */
  17. public static final int RESULT_SESSION_TIMEOUT = 1;
  18. /**
  19. * 返回状态
  20. */
  21. private int status = RESULT_CODE_SUCCESS;
  22. /**
  23. * 返回状态描述
  24. */
  25. private String statusInfo = "SUCCESS"; // 操作结果描述信息
  26. /**
  27. * 返回数据
  28. */
  29. private Object data;// 操作返回数据绑定
  30. /**
  31. * 返回一个默认的错误结果
  32. *
  33. * @return 错误结果
  34. */
  35. public static ResultInfo error() {
  36. ResultInfo res = new ResultInfo(RESULT_CODE_COMMONERR, "ERROR");
  37. return res;
  38. }
  39. /**
  40. * 返回一个带错误信息的错误结果
  41. *
  42. * @param errorMessage 错误信息
  43. * @return 错误结果
  44. */
  45. public static ResultInfo errorMessage(String errorMessage) {
  46. ResultInfo res = new ResultInfo(RESULT_CODE_COMMONERR, errorMessage);
  47. return res;
  48. }
  49. /**
  50. * session过期
  51. *
  52. * @return
  53. */
  54. public static ResultInfo sessionTimeout() {
  55. ResultInfo res = new ResultInfo(RESULT_SESSION_TIMEOUT, "登录超时");
  56. return res;
  57. }
  58. /**
  59. * 返回一个带错误信息和数据的错误结果
  60. *
  61. * @param errorMessage 错误信息
  62. * @param data 数据
  63. * @return 错误结果
  64. */
  65. public static ResultInfo errorMessage(String errorMessage, Object data) {
  66. ResultInfo res = new ResultInfo(RESULT_CODE_COMMONERR, errorMessage);
  67. res.setData(data);
  68. return res;
  69. }
  70. /**
  71. * 返回一个带状态和信息的结果
  72. *
  73. * @param status 状态
  74. * @param info 信息
  75. * @return 返回结果
  76. */
  77. public static ResultInfo result(int status, String info) {
  78. ResultInfo res = new ResultInfo();
  79. res.status = status;
  80. res.statusInfo = info;
  81. return res;
  82. }
  83. /**
  84. * 返回一个带状态,信息和数据的结果
  85. *
  86. * @param status 状态
  87. * @param info 信息
  88. * @param data 数据
  89. * @return 返回结果
  90. */
  91. public static ResultInfo result(int status, String info, Object data) {
  92. ResultInfo res = new ResultInfo();
  93. res.status = status;
  94. res.statusInfo = info;
  95. res.data = data;
  96. return res;
  97. }
  98. /**
  99. * 返回一个成功结果
  100. *
  101. * @return 成功结果
  102. */
  103. public static ResultInfo success() {
  104. ResultInfo res = new ResultInfo();
  105. return res;
  106. }
  107. /**
  108. * 返回一个带数据的成功结果
  109. *
  110. * @param data 数据
  111. * @return 成功结果
  112. */
  113. public static ResultInfo success(Object data) {
  114. ResultInfo res = new ResultInfo();
  115. res.setData(data);
  116. return res;
  117. }
  118. /**
  119. * 返回一个带信息的成功结果
  120. *
  121. * @param message 提示信息
  122. * @return 成功结果
  123. */
  124. public static ResultInfo successMessage(String message) {
  125. ResultInfo res = new ResultInfo(RESULT_CODE_SUCCESS, message);
  126. return res;
  127. }
  128. /**
  129. * 默认构造函数
  130. */
  131. public ResultInfo() {
  132. }
  133. /**
  134. * 带状态和信息的构造函数
  135. *
  136. * @param status 状态
  137. * @param statusInfo 提示信息
  138. */
  139. public ResultInfo(int status, String statusInfo) {
  140. this.status = status;
  141. this.statusInfo = statusInfo;
  142. }
  143. /**
  144. * 带状态,信息和数据的构造函数
  145. *
  146. * @param status 状态
  147. * @param statusInfo 提示信息
  148. * @param data 数据
  149. */
  150. public ResultInfo(int status, String statusInfo, Object data) {
  151. super();
  152. this.status = status;
  153. this.statusInfo = statusInfo;
  154. this.data = data;
  155. }
  156. public Object getData() {
  157. return data;
  158. }
  159. public int getStatus() {
  160. return status;
  161. }
  162. public String getStatusInfo() {
  163. return statusInfo;
  164. }
  165. public void setData(Object data) {
  166. this.data = data;
  167. }
  168. public void setStatus(int status) {
  169. this.status = status;
  170. }
  171. public void setStatusInfo(String statusInfo) {
  172. this.statusInfo = statusInfo;
  173. }
  174. @Override
  175. public int hashCode() {
  176. final int prime = 31;
  177. int result = 1;
  178. result = prime * result + ((data == null) ? 0 : data.hashCode());
  179. result = prime * result + status;
  180. result = prime * result + ((statusInfo == null) ? 0 : statusInfo.hashCode());
  181. return result;
  182. }
  183. @Override
  184. public boolean equals(Object obj) {
  185. if (this == obj) {
  186. return true;
  187. }
  188. if (obj == null) {
  189. return false;
  190. }
  191. if (getClass() != obj.getClass()) {
  192. return false;
  193. }
  194. ResultInfo other = (ResultInfo) obj;
  195. if (data == null) {
  196. if (other.data != null) {
  197. return false;
  198. }
  199. } else if (!data.equals(other.data)) {
  200. return false;
  201. }
  202. if (status != other.status) {
  203. return false;
  204. }
  205. if (statusInfo == null) {
  206. if (other.statusInfo != null) {
  207. return false;
  208. }
  209. } else if (!statusInfo.equals(other.statusInfo)) {
  210. return false;
  211. }
  212. return true;
  213. }
  214. }