package org.springside.examples.showcase.ws.server.result; import javax.xml.bind.annotation.XmlType; import org.springside.examples.showcase.ws.server.WsConstants; import org.springside.modules.utils.reflection.ReflectionUtils; /** * WebService返回结果基类,定义所有返回码. * * @author calvin */ @XmlType(name = "WSResult", namespace = WsConstants.NS) public class WSResult { //-- 返回代码定义 --// // 按项目的规则进行定义,比如1xx代表客户端参数错误,2xx代表业务错误等. public static final String SUCCESS = "0"; public static final String PARAMETER_ERROR = "101"; public static final String IMAGE_ERROR = "201"; public static final String SYSTEM_ERROR = "500"; public static final String SYSTEM_ERROR_MESSAGE = "Runtime unknown internal error."; //-- WSResult基本属性 --// private String code = SUCCESS; private String message; /** * 创建结果. */ public static <T extends WSResult> T buildResult(Class<T> resultClass, String resultCode, String resultMessage) { try { T result = resultClass.newInstance(); result.setResult(resultCode, resultMessage); return result; } catch (Exception ex) { throw ReflectionUtils.convertReflectionExceptionToUnchecked(ex); } } /** * 创建默认异常结果. */ public static <T extends WSResult> T buildDefaultErrorResult(Class<T> resultClass) { return buildResult(resultClass, SYSTEM_ERROR, SYSTEM_ERROR_MESSAGE); } 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 void setResult(String resultCode, String resultMessage) { this.code = resultCode; this.message = resultMessage; } }