|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.core.MethodParameter
public class MethodParameter
Helper class that encapsulates the specification of a method parameter, i.e. 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.
Used by GenericCollectionTypeResolver
,
BeanWrapperImpl
and
AbstractBeanFactory
.
Note that this class does not depend on JDK 1.5 API artifacts, in order
to remain compatible with JDK 1.4. Concrete generic type resolution
via JDK 1.5 API happens in GenericCollectionTypeResolver
only.
GenericCollectionTypeResolver
Constructor Summary | |
---|---|
MethodParameter(Constructor constructor,
int parameterIndex)
Create a new MethodParameter for the given constructor, with nesting level 1. |
|
MethodParameter(Constructor constructor,
int parameterIndex,
int nestingLevel)
Create a new MethodParameter for the given constructor. |
|
MethodParameter(Method method,
int parameterIndex)
Create a new MethodParameter for the given method, with nesting level 1. |
|
MethodParameter(Method method,
int parameterIndex,
int nestingLevel)
Create a new MethodParameter for the given method. |
|
MethodParameter(MethodParameter original)
Copy constructor, resulting in an independent MethodParameter object based on the same metadata and cache state that the original object was in. |
Method Summary | |
---|---|
void |
decreaseNestingLevel()
Decrease this parameter's nesting level. |
static MethodParameter |
forMethodOrConstructor(Object methodOrConstructor,
int parameterIndex)
Create a new MethodParameter for the given method or constructor. |
Constructor |
getConstructor()
Return the wrapped Constructor, if any. |
Method |
getMethod()
Return the wrapped Method, if any. |
int |
getNestingLevel()
Return the nesting level of the target type (typically 1; e.g. in case of a List of Lists, 1 would indicate the nested List, whereas 2 would indicate the element of the nested List). |
Object[] |
getParameterAnnotations()
Return the annotations associated with the method/constructor parameter. |
int |
getParameterIndex()
Return the index of the method/constructor parameter. |
String |
getParameterName()
Return the name of the method/constructor parameter. |
Class |
getParameterType()
Return the type of the method/constructor parameter. |
Integer |
getTypeIndexForCurrentLevel()
Return the type index for the current nesting level. |
Integer |
getTypeIndexForLevel(int nestingLevel)
Return the type index for the specified nesting level. |
void |
increaseNestingLevel()
Increase this parameter's nesting level. |
void |
initParameterNameDiscovery(ParameterNameDiscoverer parameterNameDiscoverer)
Initialize parameter name discovery for this method parameter. |
void |
setTypeIndexForCurrentLevel(int typeIndex)
Set the type index for the current nesting level. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public MethodParameter(Method method, int parameterIndex)
method
- the Method to specify a parameter forparameterIndex
- the index of the parameterpublic MethodParameter(Method method, int parameterIndex, int nestingLevel)
method
- the Method to specify a parameter forparameterIndex
- the index of the parameter
(-1 for the method return type; 0 for the first method parameter,
1 for the second method parameter, etc)nestingLevel
- the nesting level of the target type
(typically 1; e.g. in case of a List of Lists, 1 would indicate the
nested List, whereas 2 would indicate the element of the nested List)public MethodParameter(Constructor constructor, int parameterIndex)
constructor
- the Constructor to specify a parameter forparameterIndex
- the index of the parameterpublic MethodParameter(Constructor constructor, int parameterIndex, int nestingLevel)
constructor
- the Constructor to specify a parameter forparameterIndex
- the index of the parameternestingLevel
- the nesting level of the target type
(typically 1; e.g. in case of a List of Lists, 1 would indicate the
nested List, whereas 2 would indicate the element of the nested List)public MethodParameter(MethodParameter original)
original
- the original MethodParameter object to copy fromMethod Detail |
---|
public Method getMethod()
Note: Either Method or Constructor is available.
null
if nonepublic Constructor getConstructor()
Note: Either Method or Constructor is available.
null
if nonepublic int getParameterIndex()
public Class getParameterType()
null
)public Object[] getParameterAnnotations()
null
if there is
no annotation support (on JDK < 1.5). The return value is an Object array
instead of an Annotation array simply for compatibility with older JDKs;
feel free to cast it to Annotation[]
on JDK 1.5 or higher.public void initParameterNameDiscovery(ParameterNameDiscoverer parameterNameDiscoverer)
This method does not actually try to retrieve the parameter name at
this point; it just allows discovery to happen when the application calls
getParameterName()
(if ever).
public String getParameterName()
null
if no
parameter name metadata is contained in the class file or no
ParameterNameDiscoverer
has been set to begin with)public void increaseNestingLevel()
getNestingLevel()
public void decreaseNestingLevel()
getNestingLevel()
public int getNestingLevel()
public void setTypeIndexForCurrentLevel(int typeIndex)
typeIndex
- the corresponding type index
(or null
for the default type index)getNestingLevel()
public Integer getTypeIndexForCurrentLevel()
null
if none specified (indicating the default type index)getNestingLevel()
public Integer getTypeIndexForLevel(int nestingLevel)
nestingLevel
- the nesting level to check
null
if none specified (indicating the default type index)public static MethodParameter forMethodOrConstructor(Object methodOrConstructor, int parameterIndex)
This is a convenience constructor for scenarios where a Method or Constructor reference is treated in a generic fashion.
methodOrConstructor
- the Method or Constructor to specify a parameter forparameterIndex
- the index of the parameter
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |