Polishing

This commit is contained in:
Juergen Hoeller 2015-11-05 16:35:20 +01:00
parent 9683da52b2
commit c88877f1c4
3 changed files with 17 additions and 17 deletions

View File

@ -55,8 +55,8 @@ abstract class AbstractAliasAwareAnnotationAttributeExtractor<S> implements Anno
* of the supplied type; may be {@code null} if unknown * of the supplied type; may be {@code null} if unknown
* @param source the underlying source of annotation attributes; never {@code null} * @param source the underlying source of annotation attributes; never {@code null}
*/ */
AbstractAliasAwareAnnotationAttributeExtractor(Class<? extends Annotation> annotationType, AbstractAliasAwareAnnotationAttributeExtractor(
AnnotatedElement annotatedElement, S source) { Class<? extends Annotation> annotationType, AnnotatedElement annotatedElement, S source) {
Assert.notNull(annotationType, "annotationType must not be null"); Assert.notNull(annotationType, "annotationType must not be null");
Assert.notNull(source, "source must not be null"); Assert.notNull(source, "source must not be null");
@ -84,12 +84,12 @@ abstract class AbstractAliasAwareAnnotationAttributeExtractor<S> implements Anno
@Override @Override
public final Object getAttributeValue(Method attributeMethod) { public final Object getAttributeValue(Method attributeMethod) {
final String attributeName = attributeMethod.getName(); String attributeName = attributeMethod.getName();
Object attributeValue = getRawAttributeValue(attributeMethod); Object attributeValue = getRawAttributeValue(attributeMethod);
List<String> aliasNames = this.attributeAliasMap.get(attributeName); List<String> aliasNames = this.attributeAliasMap.get(attributeName);
if (aliasNames != null) { if (aliasNames != null) {
final Object defaultValue = AnnotationUtils.getDefaultValue(getAnnotationType(), attributeName); Object defaultValue = AnnotationUtils.getDefaultValue(getAnnotationType(), attributeName);
for (String aliasName : aliasNames) { for (String aliasName : aliasNames) {
Object aliasValue = getRawAttributeValue(aliasName); Object aliasValue = getRawAttributeValue(aliasName);

View File

@ -128,26 +128,26 @@ class MapAnnotationAttributeExtractor extends AbstractAliasAwareAnnotationAttrib
// finally, ensure correct type // finally, ensure correct type
Class<?> requiredReturnType = attributeMethod.getReturnType(); Class<?> requiredReturnType = attributeMethod.getReturnType();
Class<? extends Object> actualReturnType = attributeValue.getClass(); Class<? extends Object> actualReturnType = attributeValue.getClass();
if (!ClassUtils.isAssignable(requiredReturnType, actualReturnType)) { if (!ClassUtils.isAssignable(requiredReturnType, actualReturnType)) {
boolean converted = false; boolean converted = false;
// Nested map representing a single annotation? // Nested map representing a single annotation?
if (Annotation.class.isAssignableFrom(requiredReturnType) if (Annotation.class.isAssignableFrom(requiredReturnType) &&
&& Map.class.isAssignableFrom(actualReturnType)) { Map.class.isAssignableFrom(actualReturnType)) {
Class<? extends Annotation> nestedAnnotationType =
Class<? extends Annotation> nestedAnnotationType = (Class<? extends Annotation>) requiredReturnType; (Class<? extends Annotation>) requiredReturnType;
Map<String, Object> map = (Map<String, Object>) attributeValue; Map<String, Object> map = (Map<String, Object>) attributeValue;
attributes.put(attributeName, synthesizeAnnotation(map, nestedAnnotationType, null)); attributes.put(attributeName, synthesizeAnnotation(map, nestedAnnotationType, null));
converted = true; converted = true;
} }
// Nested array of maps representing an array of annotations? // Nested array of maps representing an array of annotations?
else if (requiredReturnType.isArray() else if (requiredReturnType.isArray() && actualReturnType.isArray() &&
&& Annotation.class.isAssignableFrom(requiredReturnType.getComponentType()) Annotation.class.isAssignableFrom(requiredReturnType.getComponentType()) &&
&& actualReturnType.isArray() Map.class.isAssignableFrom(actualReturnType.getComponentType())) {
&& Map.class.isAssignableFrom(actualReturnType.getComponentType())) { Class<? extends Annotation> nestedAnnotationType =
(Class<? extends Annotation>) requiredReturnType.getComponentType();
Class<? extends Annotation> nestedAnnotationType = (Class<? extends Annotation>) requiredReturnType.getComponentType();
Map<String, Object>[] maps = (Map<String, Object>[]) attributeValue; Map<String, Object>[] maps = (Map<String, Object>[]) attributeValue;
attributes.put(attributeName, synthesizeAnnotationArray(maps, nestedAnnotationType)); attributes.put(attributeName, synthesizeAnnotationArray(maps, nestedAnnotationType));
converted = true; converted = true;