Class IntrospectorBase
java.lang.Object
org.apache.velocity.util.introspection.IntrospectorBase
- Direct Known Subclasses:
Introspector
Lookup a a Method object for a particular class given the name of a method
and its parameters.
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 Hashtable 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 685685 2008-08-13 21:43:27Z nbubna $
- Author:
- Jason van Zyl, Bob McWhirter, Attila Szegedi, Paulo Gaspar, Henning P. Schmiedehausen
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected IntrospectorCache
Return the internal IntrospectorCache object.Gets the method defined byname
andparams
for the Classc
.
-
Field Details
-
log
Class logger
-
-
Constructor Details
-
IntrospectorBase
C'tor.
-
-
Method Details
-
getMethod
public Method getMethod(Class c, String name, Object[] params) throws IllegalArgumentException, MethodMap.AmbiguousException Gets the method defined byname
andparams
for the Classc
.- Parameters:
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- Returns:
- The desired Method object.
- Throws:
IllegalArgumentException
- When the parameters passed in can not be used for introspection.MethodMap.AmbiguousException
- When the method map contains more than one match for the requested signature.
-
getIntrospectorCache
Return the internal IntrospectorCache object.- Returns:
- The internal IntrospectorCache object.
- Since:
- 1.5
-