private void pushOntoStack(OperationResourceInfo ori, Class<?> realClass, Message msg) { OperationResourceInfoStack stack = msg.get(OperationResourceInfoStack.class); if (stack == null) { stack = new OperationResourceInfoStack(); msg.put(OperationResourceInfoStack.class, stack); } @SuppressWarnings("unchecked") MultivaluedMap<String, String> params = (MultivaluedMap<String, String>)msg.get(URITemplate.TEMPLATE_PARAMETERS); List<String> values = null; if (params == null || params.size() == 1) { values = Collections.emptyList(); } else { values = new ArrayList<String>(params.size() - 1); for (Parameter pm : ori.getParameters()) { if (pm.getType() == ParameterType.PATH) { List<String> paramValues = params.get(pm.getName()); if (paramValues != null) { values.addAll(paramValues); } } } } stack.push(new MethodInvocationInfo(ori, realClass, values)); } }
public static void pushOntoStack(OperationResourceInfo ori, MultivaluedMap<String, String> params, Message msg) { OperationResourceInfoStack stack = msg.get(OperationResourceInfoStack.class); if (stack == null) { stack = new OperationResourceInfoStack(); msg.put(OperationResourceInfoStack.class, stack); } List<String> values = null; if (params.size() <= 1) { values = Collections.emptyList(); } else { values = new ArrayList<>(params.size() - 1); addTemplateVarValues(values, params, ori.getClassResourceInfo().getURITemplate()); addTemplateVarValues(values, params, ori.getURITemplate()); } Class<?> realClass = ori.getClassResourceInfo().getServiceClass(); stack.push(new MethodInvocationInfo(ori, realClass, values)); }