org.apache.velocity.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
Version: $Id: IntrospectorBase.java,v 1.2.8.1 2004/03/03 23:23:08 geirm Exp $
Author: Jason van Zyl Bob McWhirter Attila Szegedi Paulo Gaspar
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.
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.
Copyright B) 2002 Apache Software Foundation. All Rights Reserved.