|
|
@ -262,29 +262,27 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { |
|
|
|
* @param conversionHint the conversion hint Object as passed into the |
|
|
|
* @param conversionHint the conversion hint Object as passed into the |
|
|
|
* converter for the current conversion attempt |
|
|
|
* converter for the current conversion attempt |
|
|
|
* @return the serialization view class, or {@code null} if none |
|
|
|
* @return the serialization view class, or {@code null} if none |
|
|
|
|
|
|
|
* @since 4.2 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
protected Class<?> getSerializationView(Object conversionHint) { |
|
|
|
protected Class<?> getSerializationView(Object conversionHint) { |
|
|
|
if (conversionHint instanceof MethodParameter) { |
|
|
|
if (conversionHint instanceof MethodParameter) { |
|
|
|
MethodParameter methodParam = (MethodParameter) conversionHint; |
|
|
|
MethodParameter param = (MethodParameter) conversionHint; |
|
|
|
JsonView annotation = methodParam.getParameterAnnotation(JsonView.class); |
|
|
|
JsonView annotation = (param.getParameterIndex() >= 0 ? |
|
|
|
if (annotation == null) { |
|
|
|
param.getParameterAnnotation(JsonView.class) : param.getMethodAnnotation(JsonView.class)); |
|
|
|
annotation = methodParam.getMethodAnnotation(JsonView.class); |
|
|
|
if (annotation != null) { |
|
|
|
if (annotation == null) { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return extractViewClass(annotation, conversionHint); |
|
|
|
return extractViewClass(annotation, conversionHint); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
else if (conversionHint instanceof JsonView) { |
|
|
|
else if (conversionHint instanceof JsonView) { |
|
|
|
return extractViewClass((JsonView) conversionHint, conversionHint); |
|
|
|
return extractViewClass((JsonView) conversionHint, conversionHint); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (conversionHint instanceof Class) { |
|
|
|
else if (conversionHint instanceof Class) { |
|
|
|
return (Class) conversionHint; |
|
|
|
return (Class) conversionHint; |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
|
|
|
|
|
|
|
|
// No JSON view specified...
|
|
|
|
return null; |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Class<?> extractViewClass(JsonView annotation, Object conversionHint) { |
|
|
|
private Class<?> extractViewClass(JsonView annotation, Object conversionHint) { |
|
|
|
Class<?>[] classes = annotation.value(); |
|
|
|
Class<?>[] classes = annotation.value(); |
|
|
|