package net.tccn.zhub; import org.redkale.convert.ConvertColumn; import org.redkale.convert.json.JsonConvert; import org.redkale.service.RetResult; public class Rpc { private String ruk; // request unique key: private String topic; // call topic private T value; // call paras private RpcResult rpcResult; public Rpc() { } protected Rpc(String appname, String ruk, String topic, Object value) { this.ruk = appname + "::" + ruk; this.topic = topic; this.value = (T) JsonConvert.root().convertTo(value); } public String getRuk() { return ruk; } public void setRuk(String ruk) { this.ruk = ruk; } public String getTopic() { return topic; } public void setTopic(String topic) { this.topic = topic; } public T getValue() { return value; } public void setValue(T value) { this.value = value; } @ConvertColumn(ignore = true) public RpcResult getRpcResult() { return rpcResult; } public void setRpcResult(RpcResult rpcResult) { this.rpcResult = rpcResult; } @ConvertColumn(ignore = true) public String getBackTopic() { return ruk.split("::")[0]; } public RpcResult render(int retcode, String retinfo) { RpcResult response = new RpcResult<>(); response.setRuk(ruk); response.setRetcode(retcode); response.setRetinfo(retinfo); return response; } public RpcResult render() { RpcResult response = new RpcResult<>(); response.setRuk(ruk); return response; } public RpcResult render(RetResult result) { RpcResult resp = new RpcResult<>(); resp.setRuk(ruk); resp.setRetcode(result.getRetcode()); resp.setRetinfo(result.getRetinfo()); resp.setResult(result.getResult()); return resp; } public RpcResult render(R result) { RpcResult response = new RpcResult<>(); response.setRuk(ruk); response.setResult(result); return response; } public RpcResult retError(String retinfo) { RpcResult response = new RpcResult<>(); response.setRuk(ruk); response.setRetcode(100); response.setRetinfo(retinfo); return response; } public RpcResult retError(int retcode, String retinfo) { RpcResult response = new RpcResult<>(); response.setRuk(ruk); response.setRetcode(retcode); response.setRetinfo(retinfo); return response; } }