@SuppressWarnings("unchecked") public TarsInvokeContext(Method method, Object[] arguments, Map<String, String> attachments) { super(method, arguments, attachments); Annotation[][] as = method.getParameterAnnotations(); for (int i = 0, length = as.length; i < length; i++) { if (TarsHelper.isContext(as[i])) { getAttachments().putAll((Map<String, String>) arguments[i]); } } } }
@SuppressWarnings("unchecked") public TarsInvokeContext(Method method, Object[] arguments, Map<String, String> attachments) { super(method, arguments, attachments); Annotation[][] as = method.getParameterAnnotations(); for (int i = 0, length = as.length; i < length; i++) { if (TarsHelper.isContext(as[i])) { getAttachments().putAll((Map<String, String>) arguments[i]); } } } }
@SuppressWarnings("unchecked") public TarsInvokeContext(Method method, Object[] arguments, Map<String, String> attachments) { super(method, arguments, attachments); Annotation[][] as = method.getParameterAnnotations(); for (int i = 0, length = as.length; i < length; i++) { if (TarsHelper.isContext(as[i])) { getAttachments().putAll((Map<String, String>) arguments[i]); } } } }
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(); }
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(); }