Class Introspector

  • Direct Known Subclasses:
    UberspectImpl

    public class Introspector
    extends java.lang.Object
    Default introspection services.

    Finding methods as well as property getters & setters.

    Since:
    1.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.commons.logging.Log rlog
      The logger to use for all warnings & errors.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Introspector​(org.apache.commons.logging.Log log)
      Creates an introspector.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected IntrospectorBase base()
      Gets the current introspector base.
      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.Object ctorHandle, java.lang.Object[] args)
      Returns a general constructor.
      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 accessible field names known for a given class.
      AbstractExecutor.Get getGetExecutor​(java.lang.Object obj, java.lang.Object identifier)
      Return a property getter.
      java.lang.reflect.Method getMethod​(java.lang.Class<?> c, java.lang.String name, java.lang.Object[] params)
      Gets the method defined by name and params for the Class c.
      java.lang.reflect.Method getMethod​(java.lang.Class<?> c, MethodKey key)
      Gets the method defined by key and for the Class c.
      AbstractExecutor.Method getMethodExecutor​(java.lang.Object obj, java.lang.String name, java.lang.Object[] args)
      Returns a general method.
      java.lang.String[] getMethodNames​(java.lang.Class<?> c)
      Gets the accessible methods names known for a given class.
      java.lang.reflect.Method[] getMethods​(java.lang.Class<?> c, java.lang.String methodName)
      Gets all the methods with a given name from this map.
      AbstractExecutor.Set getSetExecutor​(java.lang.Object obj, java.lang.Object identifier, java.lang.Object arg)
      Return a property setter.
      void setClassLoader​(java.lang.ClassLoader loader)
      Sets the underlying class loader for class solving resolution.
      protected java.lang.Integer toInteger​(java.lang.Object arg)
      Coerce an Object to an Integer.
      protected java.lang.String toString​(java.lang.Object arg)
      Coerce an Object to a String.
      • 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 to use for all warnings & errors.
    • Constructor Detail

      • Introspector

        protected Introspector​(org.apache.commons.logging.Log log)
        Creates an introspector.
        Parameters:
        log - the logger to use for warnings.
    • Method Detail

      • toInteger

        protected java.lang.Integer toInteger​(java.lang.Object arg)
        Coerce an Object to an Integer.
        Parameters:
        arg - the Object to coerce
        Returns:
        an Integer if it can be converted, null otherwise
      • toString

        protected java.lang.String toString​(java.lang.Object arg)
        Coerce an Object to a String.
        Parameters:
        arg - the Object to coerce
        Returns:
        a String if it can be converted, null otherwise
      • base

        protected final IntrospectorBase base()
        Gets the current introspector base.

        If the reference has been collected, this method will recreate the underlying introspector.

        Returns:
        the introspector
      • setClassLoader

        public void setClassLoader​(java.lang.ClassLoader loader)
        Sets the underlying class loader for class solving resolution.
        Parameters:
        loader - the loader to use
      • 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
      • getField

        public final 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:
        a Field or null if it does not exist or is not accessible
      • getFieldNames

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

        public final java.lang.reflect.Method getMethod​(java.lang.Class<?> c,
                                                        java.lang.String name,
                                                        java.lang.Object[] params)
        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:
        a Method or null if no unambiguous method could be found through introspection.
      • getMethod

        public final java.lang.reflect.Method getMethod​(java.lang.Class<?> c,
                                                        MethodKey key)
        Gets the method defined by key and for the Class c.
        Parameters:
        c - Class in which the method search is taking place
        key - MethodKey of the method being searched for
        Returns:
        a Method or null if no unambiguous method could be found through introspection.
      • getMethodNames

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

        public final java.lang.reflect.Method[] getMethods​(java.lang.Class<?> c,
                                                           java.lang.String methodName)
        Gets all the methods with a given name from this map.
        Parameters:
        c - the class
        methodName - the seeked methods name
        Returns:
        the array of methods
      • getConstructor

        public final java.lang.reflect.Constructor<?> getConstructor​(java.lang.Object ctorHandle,
                                                                     java.lang.Object[] args)
        Returns a general constructor.
        Parameters:
        ctorHandle - the object
        args - contructor arguments
        Returns:
        a Constructor or null if no unambiguous contructor could be found through introspection.
      • getSetExecutor

        public final AbstractExecutor.Set getSetExecutor​(java.lang.Object obj,
                                                         java.lang.Object identifier,
                                                         java.lang.Object arg)
        Return a property setter.
        Parameters:
        obj - the object to base the property from.
        identifier - property name (or identifier)
        arg - value to set
        Returns:
        a AbstractExecutor.Set.