Package org.apache.velocity.util.introspection

# Class IntrospectorBase

java.lang.Object
org.apache.velocity.util.introspection.IntrospectorBase

Direct Known Subclasses:
  `Introspector`

public abstract class IntrospectorBase extends 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$
Author:
  Jason van Zyl, Bob McWhirter, Attila Szegedi, Paulo Gaspar, Henning P. Schmiedehausen, Candid Dauth

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.slf4j.Logger`
`log`
Class logger

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`IntrospectorBase(org.slf4j.Logger log, TypeConversionHandler conversionHandler)`
C'tor.

## Method Summary

Modifier and Type
Method
Description
`Field`
`getField(Class<?> c, String name)`
Gets the field defined by `name`.
`protected IntrospectorCache`
`getIntrospectorCache()`
Return the internal IntrospectorCache object.
`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 Details

### log

protected final org.slf4j.Logger log
Class logger

## Constructor Details

### IntrospectorBase

protected IntrospectorBase(org.slf4j.Logger log, TypeConversionHandler conversionHandler)
C'tor.

Parameters:
  `log` - logger
  `conversionHandler` - conversion handler

## Method Details

### getMethod

public Method getMethod(Class<?> c, String name, Object[] params) throws MethodMap.AmbiguousException
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:
  `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 Field getField(Class<?> c, String name) throws IllegalArgumentException
Gets the field defined by `name`.

Parameters:
  `c` - Class in which the method search is taking place
  `name` - Name of the field being searched for
Returns:
  The desired Field object.
Throws:
  `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