renamed getAnnotations to getMethodAnnotations; added getMethodAnnotation and getParameterAnnotation convenience methods
This commit is contained in:
parent
b152ac34fd
commit
71a045328c
|
|
@ -157,7 +157,7 @@ public class QualifierAnnotationAutowireCandidateResolver implements AutowireCan
|
||||||
if (methodParam != null) {
|
if (methodParam != null) {
|
||||||
Method method = methodParam.getMethod();
|
Method method = methodParam.getMethod();
|
||||||
if (method == null || void.class.equals(method.getReturnType())) {
|
if (method == null || void.class.equals(method.getReturnType())) {
|
||||||
match = checkQualifiers(bdHolder, methodParam.getAnnotations());
|
match = checkQualifiers(bdHolder, methodParam.getMethodAnnotations());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -274,7 +274,7 @@ public class QualifierAnnotationAutowireCandidateResolver implements AutowireCan
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
MethodParameter methodParam = descriptor.getMethodParameter();
|
MethodParameter methodParam = descriptor.getMethodParameter();
|
||||||
if (methodParam != null) {
|
if (methodParam != null) {
|
||||||
value = findValue(methodParam.getAnnotations());
|
value = findValue(methodParam.getMethodAnnotations());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,6 @@ import org.springframework.util.Assert;
|
||||||
* a Method or Constructor plus a parameter index and a nested type index for
|
* a Method or Constructor plus a parameter index and a nested type index for
|
||||||
* a declared generic type. Useful as a specification object to pass along.
|
* a declared generic type. Useful as a specification object to pass along.
|
||||||
*
|
*
|
||||||
* <p>Used by {@link GenericCollectionTypeResolver},
|
|
||||||
* {@link org.springframework.beans.BeanWrapperImpl} and
|
|
||||||
* {@link org.springframework.beans.factory.support.AbstractBeanFactory}.
|
|
||||||
*
|
|
||||||
* @author Juergen Hoeller
|
* @author Juergen Hoeller
|
||||||
* @author Rob Harrop
|
* @author Rob Harrop
|
||||||
* @author Andy Clement
|
* @author Andy Clement
|
||||||
|
|
@ -212,22 +208,49 @@ public class MethodParameter {
|
||||||
/**
|
/**
|
||||||
* Return the annotations associated with the target method/constructor itself.
|
* Return the annotations associated with the target method/constructor itself.
|
||||||
*/
|
*/
|
||||||
public Annotation[] getAnnotations() {
|
public Annotation[] getMethodAnnotations() {
|
||||||
return (this.method != null ? this.method.getAnnotations() : this.constructor.getAnnotations());
|
return (this.method != null ? this.method.getAnnotations() : this.constructor.getAnnotations());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the method/constructor annotation of the given type, if available.
|
||||||
|
* @param annotationType the annotation type to look for
|
||||||
|
* @return the annotation object, or <code>null</code> if not found
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public <T extends Annotation> T getMethodAnnotation(Class<T> annotationType) {
|
||||||
|
return (this.method != null ? this.method.getAnnotation(annotationType) :
|
||||||
|
(T) this.constructor.getAnnotation(annotationType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the annotations associated with the specific method/constructor parameter.
|
* Return the annotations associated with the specific method/constructor parameter.
|
||||||
*/
|
*/
|
||||||
public Annotation[] getParameterAnnotations() {
|
public Annotation[] getParameterAnnotations() {
|
||||||
if (this.parameterAnnotations == null) {
|
if (this.parameterAnnotations == null) {
|
||||||
Annotation[][] annotationArray = (this.method != null) ?
|
Annotation[][] annotationArray = (this.method != null ?
|
||||||
this.method.getParameterAnnotations() : this.constructor.getParameterAnnotations();
|
this.method.getParameterAnnotations() : this.constructor.getParameterAnnotations());
|
||||||
this.parameterAnnotations = annotationArray[this.parameterIndex];
|
this.parameterAnnotations = annotationArray[this.parameterIndex];
|
||||||
}
|
}
|
||||||
return this.parameterAnnotations;
|
return this.parameterAnnotations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the parameter annotation of the given type, if available.
|
||||||
|
* @param annotationType the annotation type to look for
|
||||||
|
* @return the annotation object, or <code>null</code> if not found
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public <T extends Annotation> T getParameterAnnotation(Class<T> annotationType) {
|
||||||
|
Annotation[] anns = getParameterAnnotations();
|
||||||
|
for (Annotation ann : anns) {
|
||||||
|
if (annotationType.isInstance(ann)) {
|
||||||
|
return (T) ann;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize parameter name discovery for this method parameter.
|
* Initialize parameter name discovery for this method parameter.
|
||||||
* <p>This method does not actually try to retrieve the parameter name at
|
* <p>This method does not actually try to retrieve the parameter name at
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue