org.apache.commons.jexl.util.introspection
Class IntrospectorBase
public
class
IntrospectorBase
extends Object
This basic function of this class is to return a Method object for a
particular class given the name of a method and the parameters to the method
in the form of an Object[]
The first time the Introspector sees a class it creates a class method map
for the class in question. Basically the class method map is a Hastable where
Method objects are keyed by a concatenation of the method name and the names
of classes that make up the parameters.
For example, a method with the following signature:
public void method(String a, StringBuffer b)
would be mapped by the key:
"method" + "java.lang.String" + "java.lang.StringBuffer"
This mapping is performed for all the methods in a class and stored for
Since: 1.0
Version: $Id: IntrospectorBase.java 398464 2006-04-30 23:50:43Z dion $
Field Summary |
protected Set | cachedClassNames
Holds the qualified class names for the classes we hold in the
classMethodMaps hash. |
protected Map | classMethodMaps
Holds the method maps for the classes we know about, keyed by Class
object. |
Method Summary |
protected void | clearCache()
Clears the classmap and classname caches. |
protected ClassMap | createClassMap(Class c)
Creates a class map for specific class and registers it in the cache.
|
Method | getMethod(Class c, String name, Object[] params)
Gets the method defined by name and params
for the Class c .
|
protected Set cachedClassNames
Holds the qualified class names for the classes we hold in the
classMethodMaps hash.
protected Map classMethodMaps
Holds the method maps for the classes we know about, keyed by Class
object.
protected void clearCache()
Clears the classmap and classname caches.
protected
ClassMap createClassMap(Class c)
Creates a class map for specific class and registers it in the cache.
Also adds the qualified name to the name->class map for later Classloader
change detection.
Parameters: c class.
Returns: a ClassMap
public Method getMethod(Class c, String name, Object[] params)
Gets the method defined by
name
and
params
for the Class
c
.
Parameters: c Class in which the method search is taking place name Name of the method being searched for params An array of Objects (not Classes) that describe the the
parameters
Returns: The desired Method object.
Throws: Exception on any logical error.