Class IntrospectorBase
- java.lang.Object
-
- org.apache.velocity.util.introspection.IntrospectorBase
-
- Direct Known Subclasses:
Introspector
public abstract class IntrospectorBase extends java.lang.Object
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$
-
-
Field Summary
Fields Modifier and Type Field Description private IntrospectorCache
introspectorCache
The Introspector Cacheprotected org.slf4j.Logger
log
Class logger
-
Constructor Summary
Constructors Modifier Constructor Description protected
IntrospectorBase(org.slf4j.Logger log, TypeConversionHandler conversionHandler)
C'tor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.reflect.Field
getField(java.lang.Class<?> c, java.lang.String name)
Gets the field defined byname
.protected IntrospectorCache
getIntrospectorCache()
Return the internal IntrospectorCache object.java.lang.reflect.Method
getMethod(java.lang.Class<?> c, java.lang.String name, java.lang.Object[] params)
Gets the method defined byname
andparams
for the Classc
.
-
-
-
Field Detail
-
log
protected final org.slf4j.Logger log
Class logger
-
introspectorCache
private final IntrospectorCache introspectorCache
The Introspector Cache
-
-
Constructor Detail
-
IntrospectorBase
protected IntrospectorBase(org.slf4j.Logger log, TypeConversionHandler conversionHandler)
C'tor.- Parameters:
log
- loggerconversionHandler
- conversion handler
-
-
Method Detail
-
getMethod
public java.lang.reflect.Method getMethod(java.lang.Class<?> c, java.lang.String name, java.lang.Object[] params) throws 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:
java.lang.NullPointerException
- When the parameters passed in can not be used for introspection because null.MethodMap.AmbiguousException
- When the method map contains more than one match for the requested signature.
-
getField
public java.lang.reflect.Field getField(java.lang.Class<?> c, java.lang.String name) throws java.lang.IllegalArgumentException
Gets the field defined byname
.- Parameters:
c
- Class in which the method search is taking placename
- Name of the field being searched for- Returns:
- The desired Field object.
- Throws:
java.lang.IllegalArgumentException
- When the parameters passed in can not be used for introspection.
-
getIntrospectorCache
protected IntrospectorCache getIntrospectorCache()
Return the internal IntrospectorCache object.- Returns:
- The internal IntrospectorCache object.
- Since:
- 1.5
-
-