List of usage examples for org.springframework.core MethodParameter getGenericParameterType
public Type getGenericParameterType()
From source file:capital.scalable.restdocs.payload.AbstractJacksonFieldSnippet.java
protected Type firstGenericType(MethodParameter param) { return ((ParameterizedType) param.getGenericParameterType()).getActualTypeArguments()[0]; }
From source file:com.kinglcc.spring.jms.core.Jackson2PayloadArgumentResolver.java
private Object convertJavaTypeFromMessage(Message<?> message, MethodParameter parameter) { Type targetType = parameter.getGenericParameterType(); Class<?> contextClass = parameter.getContainingClass(); Object payload = ((GenericMessageAdapterConverter) converter).fromMessage(message, targetType, contextClass);//from w ww . java 2 s . c om if (payload == null) { throw new MessageConversionException(message, "No converter found to convert to " + targetType + ", message=" + message); } return payload; }
From source file:org.chtijbug.drools.platform.web.annotation.JsonPathArgumentResolver.java
@Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { String body = getRequestBody(webRequest); JSONArray jsonArray = JsonPath.read(body, parameter.getParameterAnnotation(JsonArg.class).value()); JavaType collectionType = TypeFactory.defaultInstance().constructType(parameter.getGenericParameterType()); return objectMapper.readValue(jsonArray.toJSONString(), collectionType); }
From source file:base.resolver.JsonModelResolver.java
protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest webRequest) throws Exception { String[] paramValues = webRequest.getParameterValues(name); Class<?> paramType = parameter.getParameterType(); if (paramValues == null) { return null; }/*from w w w. jav a 2s .c om*/ try { if (paramValues.length == 1) { String text = paramValues[0]; Type type = parameter.getGenericParameterType(); if (MapWapper.class.isAssignableFrom(paramType)) { MapWapper<?, ?> jsonMap = (MapWapper<?, ?>) paramType.newInstance(); MapType mapType = (MapType) getJavaType(HashMap.class); if (type instanceof ParameterizedType) { mapType = (MapType) mapType .narrowKey((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); mapType = (MapType) mapType.narrowContentsBy( (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1]); } jsonMap.setInnerMap(mapper.<Map>readValue(text, mapType)); return jsonMap; } JavaType javaType = getJavaType(paramType); if (Collection.class.isAssignableFrom(paramType)) { javaType = javaType .narrowContentsBy((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); } return mapper.readValue(paramValues[0], javaType); } } catch (Exception e) { throw new JsonMappingException("Could not read request json parameter", e); } throw new UnsupportedOperationException("too many request json parameter '" + name + "' for method parameter type [" + paramType + "], only support one json parameter"); }
From source file:cn.javass.spring.mvc.method.annotation.RequestJsonParamMethodArgumentResolver.java
@Override protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest webRequest) throws Exception { String[] paramValues = webRequest.getParameterValues(name); Class<?> paramType = parameter.getParameterType(); if (paramValues == null) { return null; }/*from w ww .j a va2 s.com*/ try { if (paramValues.length == 1) { String text = paramValues[0]; Type type = parameter.getGenericParameterType(); if (MapWapper.class.isAssignableFrom(paramType)) { MapWapper<?, ?> jsonMap = (MapWapper<?, ?>) paramType.newInstance(); MapType mapType = (MapType) getJavaType(HashMap.class); if (type instanceof ParameterizedType) { mapType = (MapType) mapType .narrowKey((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); mapType = (MapType) mapType.narrowContentsBy( (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1]); } jsonMap.setInnerMap(mapper.<Map>readValue(text, mapType)); return jsonMap; } JavaType javaType = getJavaType(paramType); if (Collection.class.isAssignableFrom(paramType)) { javaType = javaType .narrowContentsBy((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); } return mapper.readValue(paramValues[0], javaType); } } catch (Exception e) { throw new JsonMappingException("Could not read request json parameter", e); } throw new UnsupportedOperationException("too many request json parameter '" + name + "' for method parameter type [" + paramType + "], only support one json parameter"); }
From source file:com.ufukuzun.myth.dialect.handler.AjaxRequestResponseBodyReturnValueHandler.java
@Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception { AjaxRequestBody ajaxRequestBody = parameter.getParameterAnnotation(AjaxRequestBody.class); boolean performValidation = ajaxRequestBody.validate(); String targetName = ajaxRequestBody.targetName(); Assert.notNull(targetName);/*from ww w . jav a 2 s . c o m*/ Object argument = readWithMessageConverters(webRequest, parameter, parameter.getGenericParameterType()); if (argument != null && AjaxRequest.class.isInstance(argument) && !StringUtils.isEmpty(targetName)) { AjaxRequest<?> ajaxRequest = (AjaxRequest<?>) argument; mavContainer.addAttribute(targetName, ajaxRequest.getModel()); if (performValidation) { ajaxRequest .setModelValid(myth.validate(mavContainer.getModel(), ajaxRequest.getModel(), targetName)); } } return argument; }
From source file:fr.mby.utils.spring.beans.factory.BasicProxywiredManager.java
/** * Find Bean Type to inject (not the generic type like Collection or Set). * /*from w w w. ja v a 2 s . co m*/ * @param descriptor * @param autowiredBeanNames * @return */ protected Class<?> getBeanType(final DependencyDescriptor descriptor, final Set<String> autowiredBeanNames) { final Class<?> result; Type fieldType = null; final Field field = descriptor.getField(); if (field == null) { // Annotation on the method final MethodParameter methodParameter = descriptor.getMethodParameter(); if (methodParameter != null) { fieldType = methodParameter.getGenericParameterType(); } } else { fieldType = field.getGenericType(); } if (fieldType != null) { final Class<?> type = descriptor.getDependencyType(); if (Collection.class.isAssignableFrom(type)) { final ParameterizedType parameterizedType = (ParameterizedType) fieldType; result = (Class<?>) parameterizedType.getActualTypeArguments()[0]; } else if (Map.class.isAssignableFrom(type)) { final ParameterizedType parameterizedType = (ParameterizedType) fieldType; result = (Class<?>) parameterizedType.getActualTypeArguments()[1]; } else if (type.isArray()) { // We can't do anything throw new IllegalStateException("You cannot use Proxywired annotation on an Array !"); } else { result = type; } } else { throw new IllegalStateException("Unable to find the Bean type !"); } return result; }
From source file:com.gary.web.spring.method.annotation.RequestJsonParamMethodArgumentResolver.java
@Override protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest webRequest) throws Exception { RequestJsonParam annotation = parameter.getParameterAnnotation(RequestJsonParam.class); String[] paramValues = webRequest.getParameterValues(name); Class<?> paramType = parameter.getParameterType(); if (paramValues == null) { return null; }// ww w . j ava 2s . co m try { if (paramValues.length == 1) { String text = paramValues[0]; Type type = parameter.getGenericParameterType(); if (MapWapper.class.isAssignableFrom(paramType)) { MapWapper<?, ?> jsonMap = (MapWapper<?, ?>) paramType.newInstance(); MapType mapType = (MapType) getJavaType(HashMap.class); if (type instanceof ParameterizedType) { mapType = (MapType) mapType .narrowKey((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); mapType = (MapType) mapType.narrowContentsBy( (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1]); } jsonMap.setInnerMap(mapper.<Map>readValue(text, mapType)); return jsonMap; } JavaType javaType = getJavaType(paramType); if (Collection.class.isAssignableFrom(paramType)) { javaType = javaType .narrowContentsBy((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); } return mapper.readValue(paramValues[0], javaType); } } catch (Exception e) { throw new JsonMappingException("Could not read request json parameter", e); } throw new UnsupportedOperationException("too many request json parameter '" + name + "' for method parameter type [" + paramType + "], only support one json parameter"); }
From source file:com.sws.platform.mobile.common.json.RequestJsonParamMethodArgumentResolver.java
@Override protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest webRequest) throws Exception { String[] paramValues = webRequest.getParameterValues(name); Class<?> paramType = parameter.getParameterType(); if (paramValues == null) { return null; }// w ww . ja v a2s . co m //?json String data = webRequest.getParameter(name); if (StringUtil.isNullOrEmptyOrWhiteSpace(data)) { return null; } // try { // if (paramValues.length == 1) { // String text = paramValues[0]; Type type = parameter.getGenericParameterType(); // if (MapWapper.class.isAssignableFrom(paramType)) { // MapWapper<?, ?> jsonMap = (MapWapper<?, ?>) paramType.newInstance(); // // MapType mapType = (MapType) getJavaType(HashMap.class); // // if (type instanceof ParameterizedType) { // mapType = (MapType) mapType.narrowKey((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); // mapType = (MapType) mapType.narrowContentsBy((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1]); // } // jsonMap.setInnerMap(mapper.<Map>readValue(text, mapType)); // return jsonMap; // } // // JavaType javaType = getJavaType(paramType); // // if (Collection.class.isAssignableFrom(paramType)) { // javaType = javaType.narrowContentsBy((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); return JSONArray.parseArray(paramValues[0], (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); } return JSON.parseObject(paramValues[0], type, this.fastJsonConfig.getFeatures()); // } // } catch (Exception e) { // throw new JSONException("Could not read request json parameter", e); // } // throw new UnsupportedOperationException( // "too many request json parameter '" + name + "' for method parameter type [" + paramType + "], only support one json parameter"); }
From source file:com.kingray.spring.mvc.method.annotation.RequestJsonParamMethodArgumentResolver.java
@Override protected Object resolveName(String name, MethodParameter parameter, NativeWebRequest webRequest) throws Exception { String[] paramValues = webRequest.getParameterValues(name); Class<?> paramType = parameter.getParameterType(); if (paramValues == null) { return null; }/*from www . j a v a 2 s . c om*/ // ? // for (int i = 0; i < paramValues.length; i++) { // String paramValue = paramValues[i]; // String encodedParamValue = new String(paramValue.getBytes("ISO-8859-1"), encoding); // paramValues[i] = encodedParamValue; // } try { if (paramValues.length == 1) { String text = paramValues[0]; Type type = parameter.getGenericParameterType(); if (MapWapper.class.isAssignableFrom(paramType)) { MapWapper<?, ?> jsonMap = (MapWapper<?, ?>) paramType.newInstance(); MapType mapType = (MapType) getJavaType(HashMap.class); if (type instanceof ParameterizedType) { mapType = (MapType) mapType .narrowKey((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); mapType = (MapType) mapType.narrowContentsBy( (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1]); } jsonMap.setInnerMap(mapper.<Map>readValue(text, mapType)); return jsonMap; } JavaType javaType = getJavaType(paramType); if (Collection.class.isAssignableFrom(paramType)) { javaType = javaType .narrowContentsBy((Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0]); } return mapper.readValue(paramValues[0], javaType); } } catch (Exception e) { throw new JsonMappingException("Could not read request json parameter", e); } throw new UnsupportedOperationException("too many request json parameter '" + name + "' for method parameter type [" + paramType + "], only support one json parameter"); }