public class MethodParameter extends Object
GenericCollectionTypeResolver| Constructor and Description |
|---|
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.
|
| Modifier and Type | Method and Description |
|---|---|
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.
|
Class<?> |
getDeclaringClass()
Return the class that declares the underlying Method or Constructor.
|
Type |
getGenericParameterType()
Return the generic type of the method/constructor parameter.
|
Method |
getMethod()
Return the wrapped Method, if any.
|
<T extends Annotation> |
getMethodAnnotation(Class<T> annotationType)
Return the method/constructor annotation of the given type, if available.
|
Annotation[] |
getMethodAnnotations()
Return the annotations associated with the target method/constructor
itself.
|
int |
getNestingLevel()
Return the nesting level of the target type (typically 1; e.g.
|
<T extends Annotation> |
getParameterAnnotation(Class<T> annotationType)
Return the parameter annotation of the given type, if available.
|
Annotation[] |
getParameterAnnotations()
Return the annotations associated with the specific 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.
|
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 frompublic Method getMethod()
Note: Either Method or Constructor is available.
null if nonepublic Constructor<?> getConstructor()
Note: Either Method or Constructor is available.
null if nonepublic Class<?> getDeclaringClass()
public int getParameterIndex()
public Class<?> getParameterType()
null)public Type getGenericParameterType()
null)public Annotation[] getMethodAnnotations()
public <T extends Annotation> T getMethodAnnotation(Class<T> annotationType)
annotationType - the annotation type to look fornull if not foundpublic Annotation[] getParameterAnnotations()
public <T extends Annotation> T getParameterAnnotation(Class<T> annotationType)
annotationType - the annotation type to look fornull if not foundpublic 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 checknull 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 parameterCopyright © 2014 Molindo GmbH. All Rights Reserved.