@Override protected byte[] encodeRequestParams(TarsServantRequest request, String charsetName) throws ProtocolException { Object[] parameter = request.getMethodParameters(); if (TarsHelper.isCallback(request.getMethodInfo().getParametersList().get(0).getAnnotations())) { return ((GeneratedMessage) parameter[1]).toByteArray(); } return ((GeneratedMessage) parameter[0]).toByteArray(); }
protected Object[] decodeCallbackArgs(byte[] data, String charset, TarsMethodInfo methodInfo) throws ProtocolException, NoSuchMethodException, Exception { TarsInputStream jis = new TarsInputStream(data); jis.setServerEncoding(charset); List<Object> list = new ArrayList<Object>(); TarsMethodParameterInfo returnInfo = methodInfo.getReturnInfo(); if (returnInfo != null && Void.TYPE != returnInfo.getType()) { list.add(jis.read(returnInfo.getStamp(), returnInfo.getOrder(), true)); } List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); for (TarsMethodParameterInfo info : parameterInfoList) { if (TarsHelper.isContext(info.getAnnotations()) || TarsHelper.isCallback(info.getAnnotations())) { continue; } if (TarsHelper.isHolder(info.getAnnotations())) { list.add(jis.read(info.getStamp(), info.getOrder(), false)); } } return list.toArray(); }
protected Object[] decodeCallbackArgs(byte[] data, String charset, TarsMethodInfo methodInfo) throws ProtocolException, NoSuchMethodException, Exception { TarsInputStream jis = new TarsInputStream(data); jis.setServerEncoding(charset); List<Object> list = new ArrayList<Object>(); TarsMethodParameterInfo returnInfo = methodInfo.getReturnInfo(); if (returnInfo != null && Void.TYPE != returnInfo.getType()) { list.add(jis.read(returnInfo.getStamp(), returnInfo.getOrder(), true)); } List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); for (TarsMethodParameterInfo info : parameterInfoList) { if (TarsHelper.isContext(info.getAnnotations()) || TarsHelper.isCallback(info.getAnnotations())) { continue; } if (TarsHelper.isHolder(info.getAnnotations())) { list.add(jis.read(info.getStamp(), info.getOrder(), false)); } } return list.toArray(); }
protected Object[] decodeCallbackArgs(byte[] data, String charset, TarsMethodInfo methodInfo) throws ProtocolException, NoSuchMethodException, Exception { TarsInputStream jis = new TarsInputStream(data); jis.setServerEncoding(charset); List<Object> list = new ArrayList<Object>(); TarsMethodParameterInfo returnInfo = methodInfo.getReturnInfo(); if (returnInfo != null && Void.TYPE != returnInfo.getType()) { list.add(jis.read(returnInfo.getStamp(), returnInfo.getOrder(), true)); } List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); for (TarsMethodParameterInfo info : parameterInfoList) { if (TarsHelper.isContext(info.getAnnotations()) || TarsHelper.isCallback(info.getAnnotations())) { continue; } if (TarsHelper.isHolder(info.getAnnotations())) { list.add(jis.read(info.getStamp(), info.getOrder(), false)); } } return list.toArray(); }
public static TarsMethodInfo getMethodInfo(Class<?> api, Method method, String objectName) { if (!isServant(api) && !isCallback(api)) { return null; parameterInfo.setOrder(isAsync(method.getName()) ? order : order + 1); parameterInfo.setAnnotations(allParameterAnnotations[order]); if (!isCallback(allParameterAnnotations[order])) { parameterInfo.setStamp(TarsHelper.getParameterStamp(genericParameterType));
public static TarsMethodInfo getMethodInfo(Class<?> api, Method method, String objectName) { if (!isServant(api) && !isCallback(api)) { return null; parameterInfo.setOrder(isAsync(method.getName()) ? order : order + 1); parameterInfo.setAnnotations(allParameterAnnotations[order]); if (!isCallback(allParameterAnnotations[order])) { parameterInfo.setStamp(TarsHelper.getParameterStamp(genericParameterType));
public static TarsMethodInfo getMethodInfo(Class<?> api, Method method, String objectName) { if (!isServant(api) && !isCallback(api)) { return null; parameterInfo.setOrder(isAsync(method.getName()) ? order : order + 1); parameterInfo.setAnnotations(allParameterAnnotations[order]); if (!isCallback(allParameterAnnotations[order])) { parameterInfo.setStamp(TarsHelper.getParameterStamp(genericParameterType));
List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); for (TarsMethodParameterInfo parameterInfo : parameterInfoList) { if (TarsHelper.isCallback(parameterInfo.getAnnotations())) { callback = (Callback<TarsServantResponse>) args[parameterInfo.getOrder()]; break;
List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); for (TarsMethodParameterInfo parameterInfo : parameterInfoList) { if (TarsHelper.isCallback(parameterInfo.getAnnotations())) { callback = (Callback<TarsServantResponse>) args[parameterInfo.getOrder()]; break;
List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); for (TarsMethodParameterInfo parameterInfo : parameterInfoList) { if (TarsHelper.isCallback(parameterInfo.getAnnotations())) { callback = (Callback<TarsServantResponse>) args[parameterInfo.getOrder()]; break;
protected byte[] encodeRequestParams(TarsServantRequest request, String charsetName) throws ProtocolException { TarsOutputStream os = new TarsOutputStream(0); os.setServerEncoding(charsetName); TarsMethodInfo methodInfo = request.getMethodInfo(); List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); Object value = null; Object[] parameter = request.getMethodParameters(); for (TarsMethodParameterInfo parameterInfo : parameterInfoList) { if (TarsHelper.isContext(parameterInfo.getAnnotations()) || TarsHelper.isCallback(parameterInfo.getAnnotations())) { continue; } value = parameter[request.isAsync() ? parameterInfo.getOrder() : parameterInfo.getOrder() - 1]; if (TarsHelper.isHolder(parameterInfo.getAnnotations()) && value != null) { try { value = TarsHelper.getHolderValue(value); } catch (Exception e) { throw new ProtocolException(e); } if (value != null) { os.write(value, parameterInfo.getOrder()); } } else if (value != null) { os.write(value, parameterInfo.getOrder()); } } return os.toByteArray(); }
protected byte[] encodeRequestParams(TarsServantRequest request, String charsetName) throws ProtocolException { TarsOutputStream os = new TarsOutputStream(0); os.setServerEncoding(charsetName); TarsMethodInfo methodInfo = request.getMethodInfo(); List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); Object value = null; Object[] parameter = request.getMethodParameters(); for (TarsMethodParameterInfo parameterInfo : parameterInfoList) { if (TarsHelper.isContext(parameterInfo.getAnnotations()) || TarsHelper.isCallback(parameterInfo.getAnnotations())) { continue; } value = parameter[request.isAsync() ? parameterInfo.getOrder() : parameterInfo.getOrder() - 1]; if (TarsHelper.isHolder(parameterInfo.getAnnotations()) && value != null) { try { value = TarsHelper.getHolderValue(value); } catch (Exception e) { throw new ProtocolException(e); } if (value != null) { os.write(value, parameterInfo.getOrder()); } } else if (value != null) { os.write(value, parameterInfo.getOrder()); } } return os.toByteArray(); }
protected byte[] encodeRequestParams(TarsServantRequest request, String charsetName) throws ProtocolException { TarsOutputStream os = new TarsOutputStream(0); os.setServerEncoding(charsetName); TarsMethodInfo methodInfo = request.getMethodInfo(); List<TarsMethodParameterInfo> parameterInfoList = methodInfo.getParametersList(); Object value = null; Object[] parameter = request.getMethodParameters(); for (TarsMethodParameterInfo parameterInfo : parameterInfoList) { if (TarsHelper.isContext(parameterInfo.getAnnotations()) || TarsHelper.isCallback(parameterInfo.getAnnotations())) { continue; } value = parameter[request.isAsync() ? parameterInfo.getOrder() : parameterInfo.getOrder() - 1]; if (TarsHelper.isHolder(parameterInfo.getAnnotations()) && value != null) { try { value = TarsHelper.getHolderValue(value); } catch (Exception e) { throw new ProtocolException(e); } if (value != null) { os.write(value, parameterInfo.getOrder()); } } else if (value != null) { os.write(value, parameterInfo.getOrder()); } } return os.toByteArray(); }