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

java.lang.Object
  extended by org.apache.commons.jexl.util.introspection.ClassMap

public class ClassMap
extends java.lang.Object

Taken from the Velocity tree so we can be self-sufficient A cache of introspection information for a specific class instance. Keys java.lang.Method objects by a concatenation of the method name and the names of classes that make up the parameters.

Since:
1.0
Version:
$Id: ClassMap.java 398459 2006-04-30 23:14:30Z dion $
Author:
Jason van Zyl, Bob McWhirter, Attila Szegedi, Geir Magnusson Jr.

Constructor Summary
ClassMap(java.lang.Class aClass)
          Standard constructor.
 
Method Summary
 java.lang.reflect.Method findMethod(java.lang.String name, java.lang.Object[] params)
          Find a Method using the methodKey provided.
static java.lang.reflect.Method getPublicMethod(java.lang.reflect.Method method)
          For a given method, retrieves its publicly accessible counterpart.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassMap

public ClassMap(java.lang.Class aClass)
Standard constructor.

Parameters:
aClass - the class to deconstruct.
Method Detail

findMethod

public java.lang.reflect.Method findMethod(java.lang.String name,
                                           java.lang.Object[] params)
                                    throws MethodMap.AmbiguousException
Find a Method using the methodKey provided. Look in the methodMap for an entry. If found, it'll either be a CACHE_MISS, in which case we simply give up, or it'll be a Method, in which case, we return it. If nothing is found, then we must actually go and introspect the method from the MethodMap.

Parameters:
name - method name
params - method parameters
Returns:
CACHE_MISS or a Method
Throws:
MethodMap.AmbiguousException - if the method and parameters are ambiguous.

getPublicMethod

public static java.lang.reflect.Method getPublicMethod(java.lang.reflect.Method method)
For a given method, retrieves its publicly accessible counterpart. This method will look for a method with same name and signature declared in a public superclass or implemented interface of this method's declaring class. This counterpart method is publicly callable.

Parameters:
method - a method whose publicly callable counterpart is requested.
Returns:
the publicly callable counterpart method. Note that if the parameter method is itself declared by a public class, this method is an identity function.


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