if (methodAnnotation != null) { String annotationValue = AnnotationUtils.getAnnotationValue(methodAnnotation); values.put(annotationValue, new BeanPair(value, m.getParameterAnnotations()[0])); } else { getValuesFromBeanParam(value, annClass, values);
protected void handleCookies(Method m, Object[] params, MultivaluedMap<String, String> headers, List<Parameter> beanParams, MultivaluedMap<ParameterType, Parameter> map) { List<Parameter> cs = getParameters(map, ParameterType.COOKIE); cs.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { headers.add(HttpHeaders.COOKIE, p.getName() + '=' + convertParamValue(params[p.getIndex()].toString(), getParamAnnotations(m, p))); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], CookieParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { headers.add(HttpHeaders.COOKIE, key + "=" + convertParamValue(value.getValue(), value.getAnns())); } }); }); }
BeanPair pair = beanParamValues.get(classVar); if (pair != null) { Object paramValue = convertParamValue(pair.getValue(), pair.getAnns()); if (isRoot) { valuesMap.put(classVar, paramValue); } else if (beanParamValues.containsKey(varName)) { BeanPair pair = beanParamValues.get(varName); list.add(convertParamValue(pair.getValue(), pair.getAnns())); } else if (requestBody != null) { try {
BeanPair pair = beanParamValues.get(classVar); if (pair != null) { Object paramValue = convertParamValue(pair.getValue(), pair.getAnns()); if (isRoot) { valuesMap.put(classVar, paramValue); } else if (beanParamValues.containsKey(varName)) { BeanPair pair = beanParamValues.get(varName); list.add(convertParamValue(pair.getValue(), pair.getAnns())); } else if (requestBody != null) { try {
if (methodAnnotation != null) { String annotationValue = AnnotationUtils.getAnnotationValue(methodAnnotation); values.put(annotationValue, new BeanPair(value, m.getParameterAnnotations()[0])); } else { getValuesFromBeanParam(value, annClass, values);
private void handleMatrixes(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams, UriBuilder ub) { List<Parameter> mx = getParameters(map, ParameterType.MATRIX); for (Parameter p : mx) { if (params[p.getIndex()] != null) { addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.MATRIX, getParamAnnotations(m, p), params[p.getIndex()]); } } for (Parameter p : beanParams) { Map<String, BeanPair> values = getValuesFromBeanParam(params[p.getIndex()], MatrixParam.class); for (Map.Entry<String, BeanPair> entry : values.entrySet()) { if (entry.getValue() != null) { addMatrixQueryParamsToBuilder(ub, entry.getKey(), ParameterType.MATRIX, entry.getValue().getAnns(), entry.getValue().getValue()); } } } }
protected void handleMatrixes(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams, UriBuilder ub) { List<Parameter> mx = getParameters(map, ParameterType.MATRIX); mx.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.MATRIX, getParamAnnotations(m, p), params[p.getIndex()]); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], MatrixParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { addMatrixQueryParamsToBuilder(ub, key, ParameterType.MATRIX, value.getAnns(), value.getValue()); } }); }); }
private void handleHeaders(Method m, Object[] params, MultivaluedMap<String, String> headers, List<Parameter> beanParams, MultivaluedMap<ParameterType, Parameter> map) { List<Parameter> hs = getParameters(map, ParameterType.HEADER); for (Parameter p : hs) { if (params[p.getIndex()] != null) { headers.add(p.getName(), convertParamValue(params[p.getIndex()], getParamAnnotations(m, p))); } } for (Parameter p : beanParams) { Map<String, BeanPair> values = getValuesFromBeanParam(params[p.getIndex()], HeaderParam.class); for (Map.Entry<String, BeanPair> entry : values.entrySet()) { if (entry.getValue() != null) { headers.add(entry.getKey(), convertParamValue(entry.getValue().getValue(), entry.getValue().getAnns())); } } } }
protected void handleQueries(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams, UriBuilder ub) { List<Parameter> qs = getParameters(map, ParameterType.QUERY); qs.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.QUERY, getParamAnnotations(m, p), params[p.getIndex()]); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], QueryParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { addMatrixQueryParamsToBuilder(ub, key, ParameterType.QUERY, value.getAnns(), value.getValue()); } }); }); }
protected void handleCookies(Method m, Object[] params, MultivaluedMap<String, String> headers, List<Parameter> beanParams, MultivaluedMap<ParameterType, Parameter> map) { List<Parameter> cs = getParameters(map, ParameterType.COOKIE); cs.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { headers.add(HttpHeaders.COOKIE, p.getName() + '=' + convertParamValue(params[p.getIndex()].toString(), getParamAnnotations(m, p))); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], CookieParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { headers.add(HttpHeaders.COOKIE, key + "=" + convertParamValue(value.getValue(), value.getAnns())); } }); }); }
private void handleCookies(Method m, Object[] params, MultivaluedMap<String, String> headers, List<Parameter> beanParams, MultivaluedMap<ParameterType, Parameter> map) { List<Parameter> cs = getParameters(map, ParameterType.COOKIE); for (Parameter p : cs) { if (params[p.getIndex()] != null) { headers.add(HttpHeaders.COOKIE, p.getName() + '=' + convertParamValue(params[p.getIndex()].toString(), getParamAnnotations(m, p))); } } for (Parameter p : beanParams) { Map<String, BeanPair> values = getValuesFromBeanParam(params[p.getIndex()], CookieParam.class); for (Map.Entry<String, BeanPair> entry : values.entrySet()) { if (entry.getValue() != null) { headers.add(HttpHeaders.COOKIE, entry.getKey() + "=" + convertParamValue(entry.getValue().getValue(), entry.getValue().getAnns())); } } } }
private void handleQueries(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams, UriBuilder ub) { List<Parameter> qs = getParameters(map, ParameterType.QUERY); for (Parameter p : qs) { if (params[p.getIndex()] != null) { addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.QUERY, getParamAnnotations(m, p), params[p.getIndex()]); } } for (Parameter p : beanParams) { Map<String, BeanPair> values = getValuesFromBeanParam(params[p.getIndex()], QueryParam.class); for (Map.Entry<String, BeanPair> entry : values.entrySet()) { if (entry.getValue() != null) { addMatrixQueryParamsToBuilder(ub, entry.getKey(), ParameterType.QUERY, entry.getValue().getAnns(), entry.getValue().getValue()); } } } }
protected void handleQueries(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams, UriBuilder ub) { List<Parameter> qs = getParameters(map, ParameterType.QUERY); qs.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.QUERY, getParamAnnotations(m, p), params[p.getIndex()]); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], QueryParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { addMatrixQueryParamsToBuilder(ub, key, ParameterType.QUERY, value.getAnns(), value.getValue()); } }); }); }
protected void handleMatrixes(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams, UriBuilder ub) { List<Parameter> mx = getParameters(map, ParameterType.MATRIX); mx.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { addMatrixQueryParamsToBuilder(ub, p.getName(), ParameterType.MATRIX, getParamAnnotations(m, p), params[p.getIndex()]); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], MatrixParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { addMatrixQueryParamsToBuilder(ub, key, ParameterType.MATRIX, value.getAnns(), value.getValue()); } }); }); }
protected MultivaluedMap<String, String> handleForm(Method m, Object[] params, MultivaluedMap<ParameterType, Parameter> map, List<Parameter> beanParams) { MultivaluedMap<String, String> form = new MetadataMap<>(); List<Parameter> fm = getParameters(map, ParameterType.FORM); fm.forEach(p -> { addFormValue(form, p.getName(), params[p.getIndex()], getParamAnnotations(m, p)); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], FormParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { addFormValue(form, key, value.getValue(), value.getAnns()); }); }); return form; }
private Map<String, BeanPair> getValuesFromBeanParam(Object bean, Class<? extends Annotation> annClass) { Map<String, BeanPair> values = new HashMap<String, BeanPair>(); for (Method m : bean.getClass().getMethods()) { Annotation annotation = m.getAnnotation(annClass); if (annotation != null) { try { String propertyName = m.getName().substring(3); Method getter = bean.getClass().getMethod("get" + propertyName, new Class[]{}); Object value = getter.invoke(bean, new Object[]{}); if (value != null) { String annotationValue = AnnotationUtils.getAnnotationValue(annotation); values.put(annotationValue, new BeanPair(value, m.getParameterAnnotations()[0])); } } catch (Throwable t) { // ignore } } } return values; }
protected void handleHeaders(Method m, Object[] params, MultivaluedMap<String, String> headers, List<Parameter> beanParams, MultivaluedMap<ParameterType, Parameter> map) { List<Parameter> hs = getParameters(map, ParameterType.HEADER); hs.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { headers.add(p.getName(), convertParamValue(params[p.getIndex()], getParamAnnotations(m, p))); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], HeaderParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { headers.add(key, convertParamValue(value.getValue(), value.getAnns())); } }); }); }
protected void handleHeaders(Method m, Object[] params, MultivaluedMap<String, String> headers, List<Parameter> beanParams, MultivaluedMap<ParameterType, Parameter> map) { List<Parameter> hs = getParameters(map, ParameterType.HEADER); hs.stream(). filter(p -> params[p.getIndex()] != null). forEachOrdered(p -> { headers.add(p.getName(), convertParamValue(params[p.getIndex()], getParamAnnotations(m, p))); }); beanParams.stream(). map(p -> getValuesFromBeanParam(params[p.getIndex()], HeaderParam.class)). forEachOrdered(values -> { values.forEach((key, value) -> { if (value != null) { headers.add(key, convertParamValue(value.getValue(), value.getAnns())); } }); }); }
protected boolean getValuesFromBeanParamField(Object bean, Field f, Class<? extends Annotation> annClass, Map<String, BeanPair> values) { boolean jaxrsParamAnnAvailable = false; Annotation fieldAnnotation = f.getAnnotation(annClass); if (fieldAnnotation != null) { jaxrsParamAnnAvailable = true; Object value = ReflectionUtil.accessDeclaredField(f, bean, Object.class); if (value != null) { String annotationValue = AnnotationUtils.getAnnotationValue(fieldAnnotation); values.put(annotationValue, new BeanPair(value, f.getAnnotations())); } } return jaxrsParamAnnAvailable; }