|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.jexl.util.introspection.ClassMap
public class ClassMap
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.
| Nested Class Summary | |
|---|---|
private static class |
ClassMap.CacheMiss
represents a miss on the cached data. |
private static class |
ClassMap.MethodInfo
Used for the iterative discovery process for public methods. |
| Field Summary | |
|---|---|
private static ClassMap.CacheMiss |
CACHE_MISS
constant for a miss on the cached data. |
private java.lang.Class |
clazz
Class passed into the constructor used to as the basis for the Method map. |
private java.util.Map |
methodCache
Cache of Methods, or CACHE_MISS, keyed by method name and actual arguments used to find it. |
private MethodMap |
methodMap
map from method name and args to a Method. |
private static java.lang.Object |
OBJECT
represents null or missing arguments. |
| 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. |
private static java.lang.reflect.Method[] |
getAccessibleMethods(java.lang.Class clazz)
Retrieves public methods for a class. |
private static int |
getAccessibleMethods(java.lang.Class clazz,
ClassMap.MethodInfo[] methodInfos,
int upcastCount)
Recursively finds a match for each method, starting with the class, and then searching the superclass and interfaces. |
(package private) java.lang.Class |
getCachedClass()
|
private static java.lang.reflect.Method |
getPublicMethod(java.lang.Class clazz,
java.lang.String name,
java.lang.Class[] paramTypes)
Looks up the method with specified name and signature in the first public superclass or implemented interface of the class. |
static java.lang.reflect.Method |
getPublicMethod(java.lang.reflect.Method method)
For a given method, retrieves its publicly accessible counterpart. |
private java.lang.String |
makeMethodKey(java.lang.reflect.Method method)
Make a methodKey for the given method using the concatenation of the name and the types of the method parameters. |
private static java.lang.String |
makeMethodKey(java.lang.String method,
java.lang.Object[] params)
|
private void |
populateMethodCache()
Populate the Map of direct hits. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static final ClassMap.CacheMiss CACHE_MISS
private static final java.lang.Object OBJECT
private java.lang.Class clazz
private final java.util.Map methodCache
private final MethodMap methodMap
Method.
| Constructor Detail |
|---|
public ClassMap(java.lang.Class aClass)
aClass - the class to deconstruct.| Method Detail |
|---|
java.lang.Class getCachedClass()
public java.lang.reflect.Method findMethod(java.lang.String name,
java.lang.Object[] params)
throws MethodMap.AmbiguousException
name - method nameparams - method parameters
Method
MethodMap.AmbiguousException - if the method and parameters are ambiguous.private void populateMethodCache()
private java.lang.String makeMethodKey(java.lang.reflect.Method method)
private static java.lang.String makeMethodKey(java.lang.String method,
java.lang.Object[] params)
private static java.lang.reflect.Method[] getAccessibleMethods(java.lang.Class clazz)
private static int getAccessibleMethods(java.lang.Class clazz,
ClassMap.MethodInfo[] methodInfos,
int upcastCount)
clazz - Class to checkmethodInfos - array of methods we are searching to matchupcastCount - current number of methods we have matched
public static java.lang.reflect.Method getPublicMethod(java.lang.reflect.Method method)
method - a method whose publicly callable counterpart is requested.
private static java.lang.reflect.Method getPublicMethod(java.lang.Class clazz,
java.lang.String name,
java.lang.Class[] paramTypes)
class - the class whose method is soughtname - the name of the methodparamTypes - the classes of method parameters
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||