This commit is contained in:
Redkale
2017-06-24 15:26:52 +08:00
parent eaa0a99933
commit fc35fc5abc

View File

@@ -29,35 +29,47 @@ public @interface RetLabel {
String value(); String value();
public static abstract class AbstractRetCode { public static class RetCode {
protected static final Map<Integer, String> rets = new HashMap(); protected final Map<Integer, String> rets = new HashMap();
protected static void load(Class clazz) { protected final Class clazz;
rets.putAll(RetLoader.load(clazz));
protected boolean inited;
public RetCode(Class clazz) {
this.clazz = clazz;
} }
public static RetResult retResult(int retcode) { public RetResult retResult(int retcode) {
if (retcode == 0) return RetResult.success(); if (retcode == 0) return RetResult.success();
return new RetResult(retcode, retInfo(retcode)); return new RetResult(retcode, retInfo(retcode));
} }
public static RetResult retResult(int retcode, Object... args) { public RetResult retResult(int retcode, Object... args) {
if (retcode == 0) return RetResult.success(); if (retcode == 0) return RetResult.success();
if (args == null || args.length < 1) return new RetResult(retcode, retInfo(retcode)); if (args == null || args.length < 1) return new RetResult(retcode, retInfo(retcode));
String info = MessageFormat.format(retInfo(retcode), args); String info = MessageFormat.format(retInfo(retcode), args);
return new RetResult(retcode, info); return new RetResult(retcode, info);
} }
public static RetResult set(RetResult result, int retcode, Object... args) { public RetResult set(RetResult result, int retcode, Object... args) {
if (retcode == 0) return result.retcode(0).retinfo(""); if (retcode == 0) return result.retcode(0).retinfo("");
if (args == null || args.length < 1) return result.retcode(retcode).retinfo(retInfo(retcode)); if (args == null || args.length < 1) return result.retcode(retcode).retinfo(retInfo(retcode));
String info = MessageFormat.format(retInfo(retcode), args); String info = MessageFormat.format(retInfo(retcode), args);
return result.retcode(retcode).retinfo(info); return result.retcode(retcode).retinfo(info);
} }
public static String retInfo(int retcode) { public String retInfo(int retcode) {
if (retcode == 0) return "成功"; if (retcode == 0) return "成功";
if (!this.inited) {
synchronized (this) {
if (!this.inited) {
rets.putAll(RetLoader.load(clazz));
}
this.inited = true;
}
}
return rets.getOrDefault(retcode, "未知错误"); return rets.getOrDefault(retcode, "未知错误");
} }
} }