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 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