org.apache.velocity.util.introspection
Class IntrospectorBase
java.lang.Object
org.apache.velocity.util.introspection.IntrospectorBase
public class IntrospectorBase
extends java.lang.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
Version:
- Jason van Zyl
- Bob McWhirter
- Attila Szegedi
- Paulo Gaspar
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.
|
Method | getMethod(Class c, String name, Object[] params) - Gets the method defined by
name and
params for the Class c .
|
cachedClassNames
protected Set cachedClassNames
Holds the qualified class names for the classes
we hold in the classMethodMaps hash
classMethodMaps
protected Map classMethodMaps
Holds the method maps for the classes we know about, keyed by
Class object.
clearCache
protected void clearCache()
Clears the classmap and classname
caches
createClassMap
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.
getMethod
public Method getMethod(Class c,
String name,
Object[] params)
throws Exception
Gets the method defined by name
and
params
for the Class c
.
c
- Class in which the method search is taking placename
- Name of the method being searched forparams
- An array of Objects (not Classes) that describe the
the parameters
- The desired Method object.
Copyright B) 2002 Apache Software Foundation. All Rights Reserved.