org.springframework.core
Class LocalVariableTableParameterNameDiscoverer
java.lang.Object
org.springframework.core.LocalVariableTableParameterNameDiscoverer
- All Implemented Interfaces:
- ParameterNameDiscoverer
public class LocalVariableTableParameterNameDiscoverer
- extends java.lang.Object
- implements ParameterNameDiscoverer
Implementation of ParameterNameDiscoverer
that uses the LocalVariableTable
information in the method attributes to discover parameter names. Returns
null
if the class file was compiled without debug information.
Uses ObjectWeb's ASM library for analyzing class files. Each discoverer
instance caches the ASM discovered information for each introspected Class, in a
thread-safe manner. It is recommended to reuse discoverer instances
as far as possible.
- Since:
- 2.0
- Author:
- Adrian Colyer, Costin Leau, Juergen Hoeller
Field Summary |
private static Log |
logger
|
private static java.util.Map<java.lang.reflect.Member,java.lang.String[]> |
NO_DEBUG_INFO_MAP
|
private java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.reflect.Member,java.lang.String[]>> |
parameterNamesCache
|
Method Summary |
java.lang.String[] |
getParameterNames(java.lang.reflect.Constructor ctor)
Return parameter names for this constructor,
or null if they cannot be determined. |
java.lang.String[] |
getParameterNames(java.lang.reflect.Method method)
Return parameter names for this method,
or null if they cannot be determined. |
private java.util.Map<java.lang.reflect.Member,java.lang.String[]> |
inspectClass(java.lang.Class<?> clazz)
Inspects the target class. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
private static Log logger
NO_DEBUG_INFO_MAP
private static final java.util.Map<java.lang.reflect.Member,java.lang.String[]> NO_DEBUG_INFO_MAP
parameterNamesCache
private final java.util.Map<java.lang.Class<?>,java.util.Map<java.lang.reflect.Member,java.lang.String[]>> parameterNamesCache
LocalVariableTableParameterNameDiscoverer
public LocalVariableTableParameterNameDiscoverer()
getParameterNames
public java.lang.String[] getParameterNames(java.lang.reflect.Method method)
- Description copied from interface:
ParameterNameDiscoverer
- Return parameter names for this method,
or
null
if they cannot be determined.
- Specified by:
getParameterNames
in interface ParameterNameDiscoverer
- Parameters:
method
- method to find parameter names for
- Returns:
- an array of parameter names if the names can be resolved,
or
null
if they cannot
getParameterNames
public java.lang.String[] getParameterNames(java.lang.reflect.Constructor ctor)
- Description copied from interface:
ParameterNameDiscoverer
- Return parameter names for this constructor,
or
null
if they cannot be determined.
- Specified by:
getParameterNames
in interface ParameterNameDiscoverer
- Parameters:
ctor
- constructor to find parameter names for
- Returns:
- an array of parameter names if the names can be resolved,
or
null
if they cannot
inspectClass
private java.util.Map<java.lang.reflect.Member,java.lang.String[]> inspectClass(java.lang.Class<?> clazz)
- Inspects the target class. Exceptions will be logged and a maker map returned
to indicate the lack of debug information.