Class IntrospectorBase


  • public class IntrospectorBase
    extends java.lang.Object
    This basic function of this class is to return a Method object for a particular class given the name of a method and the parameters to the method in the form of an Object[]

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

    Since:
    1.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.commons.logging.Log rlog
      the logger.
    • Constructor Summary

      Constructors 
      Constructor Description
      IntrospectorBase​(org.apache.commons.logging.Log log)
      Create the introspector.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class<?> getClassByName​(java.lang.String className)
      Gets a class by name through this introspector class loader.
      java.lang.reflect.Constructor<?> getConstructor​(java.lang.Class<?> c, MethodKey key)
      Gets the constructor defined by the MethodKey.
      java.lang.reflect.Constructor<?> getConstructor​(MethodKey key)
      Gets the constructor defined by the MethodKey.
      java.lang.reflect.Field getField​(java.lang.Class<?> c, java.lang.String key)
      Gets the field named by key for the class c.
      java.lang.String[] getFieldNames​(java.lang.Class<?> c)
      Gets the array of accessible field names known for a given class.
      java.lang.reflect.Method getMethod​(java.lang.Class<?> c, MethodKey key)
      Gets the method defined by the MethodKey for the class c.
      java.lang.String[] getMethodNames​(java.lang.Class<?> c)
      Gets the array of accessible methods names known for a given class.
      java.lang.reflect.Method[] getMethods​(java.lang.Class<?> c, java.lang.String methodName)
      Gets the array of accessible method known for a given class.
      void setLoader​(java.lang.ClassLoader cloader)
      Sets the class loader used to solve constructors.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • rlog

        protected final org.apache.commons.logging.Log rlog
        the logger.
    • Constructor Detail

      • IntrospectorBase

        public IntrospectorBase​(org.apache.commons.logging.Log log)
        Create the introspector.
        Parameters:
        log - the logger to use
    • Method Detail

      • getClassByName

        public java.lang.Class<?> getClassByName​(java.lang.String className)
        Gets a class by name through this introspector class loader.
        Parameters:
        className - the class name
        Returns:
        the class instance or null if it could not be found
      • getMethod

        public java.lang.reflect.Method getMethod​(java.lang.Class<?> c,
                                                  MethodKey key)
        Gets the method defined by the MethodKey for the class c.
        Parameters:
        c - Class in which the method search is taking place
        key - Key of the method being searched for
        Returns:
        The desired method object
        Throws:
        MethodKey.AmbiguousException - if no unambiguous method could be found through introspection
      • getField

        public java.lang.reflect.Field getField​(java.lang.Class<?> c,
                                                java.lang.String key)
        Gets the field named by key for the class c.
        Parameters:
        c - Class in which the field search is taking place
        key - Name of the field being searched for
        Returns:
        the desired field or null if it does not exist or is not accessible
      • getFieldNames

        public java.lang.String[] getFieldNames​(java.lang.Class<?> c)
        Gets the array of accessible field names known for a given class.
        Parameters:
        c - the class
        Returns:
        the class field names
      • getMethodNames

        public java.lang.String[] getMethodNames​(java.lang.Class<?> c)
        Gets the array of accessible methods names known for a given class.
        Parameters:
        c - the class
        Returns:
        the class method names
      • getMethods

        public java.lang.reflect.Method[] getMethods​(java.lang.Class<?> c,
                                                     java.lang.String methodName)
        Gets the array of accessible method known for a given class.
        Parameters:
        c - the class
        methodName - the method name
        Returns:
        the array of methods (null or not empty)
      • setLoader

        public void setLoader​(java.lang.ClassLoader cloader)
        Sets the class loader used to solve constructors.

        Also cleans the constructors and methods caches.

        Parameters:
        cloader - the class loader; if null, use this instance class loader
      • getConstructor

        public java.lang.reflect.Constructor<?> getConstructor​(MethodKey key)
        Gets the constructor defined by the MethodKey.
        Parameters:
        key - Key of the constructor being searched for
        Returns:
        The desired constructor object or null if no unambiguous constructor could be found through introspection.
      • getConstructor

        public java.lang.reflect.Constructor<?> getConstructor​(java.lang.Class<?> c,
                                                               MethodKey key)
        Gets the constructor defined by the MethodKey.
        Parameters:
        c - the class we want to instantiate
        key - Key of the constructor being searched for
        Returns:
        The desired constructor object or null if no unambiguous constructor could be found through introspection.