/** * Compares two methods the in terms of the number of parameters * * @param record1 the first method * @param record2 the second method * @return positive integer if record1 has more parameters, negative integer * if record2 has more parameters, 0 if they are equal in number of * parameters */ private int compareMethodsParameters(MethodRecord record1, MethodRecord record2) { List<Injectable> params1 = record1.getMetadata().getFormalParameters(); List<Injectable> params2 = record2.getMetadata().getFormalParameters(); return params1.size() - params2.size(); }
private void mergeFormalParameterMetadata(MethodMetadata metadata, Method method) { logger.trace("mergeFormalParameterMetadata({})", new Object[] {metadata, method}); Type[] parameterTypes = method.getGenericParameterTypes(); List<Injectable> currentParameters = new ArrayList<Injectable>(metadata.getFormalParameters()); metadata.getFormalParameters().clear(); int i = 0; for (Injectable injectable : currentParameters) { Injectable fp = InjectableFactory.getInstance().create(parameterTypes[i], injectable.getAnnotations(), method, getMetadata().isEncoded() || metadata .isEncoded(), metadata.getDefaultValue()); metadata.getFormalParameters().add(fp); ++i; } logger.trace("mergeFormalParameterMetadata exit"); }
public void handleRequest(MessageContext context, HandlersChain chain) throws Throwable { SearchResult result = context.getAttribute(SearchResult.class); // create and save the invocation parameters for the found method List<Injectable> formal = result.getMethod().getMetadata().getFormalParameters(); logger.trace("Formal Injectable parameters list is: {}", formal); //$NON-NLS-1$ Object[] parameters = InjectableFactory.getInstance().instantiate(formal, context); if(logger.isTraceEnabled()) { if(parameters == null) { logger.trace("Actual parameters list to inject is: null"); //$NON-NLS-1$ } else { logger.trace("Actual parameters list to inject is: {}", parameters); //$NON-NLS-1$ } } result.setInvocationParameters(parameters); chain.doChain(context); }
private void buildQueryParams(MethodMetadata methodMetadata, QueryParameters xmlQueryVariables) { List<Injectable> formalParameters = methodMetadata.getFormalParameters(); for (Injectable var : formalParameters) { if (var.getParamType() == Injectable.ParamType.QUERY) { Parameter param = resourcesObjectFactory.createParameter(); param.setValue(((BoundInjectable)var).getName()); xmlQueryVariables.getParameter().add(param); } } }
private void buildMatrixParams(MethodMetadata methodMetadata, MatrixParameters params) { List<Injectable> formalParameters = methodMetadata.getFormalParameters(); for (Injectable var : formalParameters) { if (var.getParamType() == Injectable.ParamType.MATRIX) { Parameter param = resourcesObjectFactory.createParameter(); param.setValue(((BoundInjectable)var).getName()); params.getParameter().add(param); } } }
private void parseMethodParameters(Method method, MethodMetadata methodMetadata) { logger.trace("parseMethodParameters({}, {}), entry", method, methodMetadata); Annotation[][] parameterAnnotations = method.getParameterAnnotations(); Type[] paramTypes = getParamTypesFilterByXmlElementAnnotation(method); boolean entityParamExists = false; for (int pos = 0, limit = paramTypes.length; pos < limit; pos++) { Injectable fp = InjectableFactory.getInstance().create(paramTypes[pos], parameterAnnotations[pos], method, getMetadata().isEncoded() || methodMetadata .isEncoded(), methodMetadata.getDefaultValue()); if (fp.getParamType() == Injectable.ParamType.ENTITY) { if (entityParamExists) { // we are allowed to have only one entity parameter String methodName = method.getDeclaringClass().getName() + "." + method.getName(); //$NON-NLS-1$ throw new IllegalStateException(Messages .getMessage("resourceMethodMoreThanOneEntityParam", methodName)); //$NON-NLS-1$ } entityParamExists = true; } methodMetadata.getFormalParameters().add(fp); logger.trace("Adding formal parameter {}", fp); } logger.trace("parseMethodParameters(), exit"); }
for (Injectable id : methodMetadata.getFormalParameters()) { if (id.getParamType() == Injectable.ParamType.ENTITY) { if (logger.isWarnEnabled()) {
List<Injectable> params = methodMetadata.getFormalParameters(); boolean isEntityParamFound = false; for (Injectable p : params) {
if (mt.isCompatible(MediaType.APPLICATION_FORM_URLENCODED_TYPE) || mt .isCompatible(MediaType.MULTIPART_FORM_DATA_TYPE)) { List<Injectable> injectables = methodMetadata.getFormalParameters(); if (injectables != null) { for (Injectable i : injectables) {
List<Injectable> params = metadata.getFormalParameters(); if (params != null && params.size() > 0) { if (r == null) {
List<Injectable> params = methodMeta.getFormalParameters(); if (params != null && params.size() > 0) { for (Injectable p : params) { List<Param> subResParams = subRes.getParam(); List<Injectable> params = methodMeta.getFormalParameters(); if (params != null && params.size() > 0) { for (Injectable p : params) { List<Injectable> params = methodMeta.getFormalParameters(); List<Param> subResParams = subRes.getParam(); if (params != null && params.size() > 0) {