org.apache.commons.jexl.util.introspection
Class IntrospectorBase

java.lang.Object
  |
  +--org.apache.commons.jexl.util.introspection.IntrospectorBase
Direct Known Subclasses:
Introspector

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.
 
Constructor Summary
IntrospectorBase()
           
 
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classMethodMaps

protected Map classMethodMaps
Holds the method maps for the classes we know about, keyed by Class object.


cachedClassNames

protected Set cachedClassNames
Holds the qualified class names for the classes we hold in the classMethodMaps hash.

Constructor Detail

IntrospectorBase

public IntrospectorBase()
Method Detail

getMethod

public Method getMethod(Class c,
                        String name,
                        Object[] params)
                 throws Exception
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.

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.

Parameters:
c - class.
Returns:
a ClassMap

clearCache

protected void clearCache()
Clears the classmap and classname caches.



Copyright © 2003-2006 The Apache Software Foundation. All Rights Reserved.