java.lang.Object
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.Introspector
Direct Known Subclasses:
UberspectImpl

public class Introspector extends Object
Default introspection services.

Finding methods as well as property getters & setters.

Since:
1.0
  • Field Details

    • rlog

      protected final Log rlog
      The logger to use for all warnings & errors.
  • Constructor Details

    • Introspector

      protected Introspector(Log log)
      Creates an introspector.
      Parameters:
      log - the logger to use for warnings.
  • Method Details

    • toInteger

      protected Integer toInteger(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 String toString(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(ClassLoader loader)
      Sets the underlying class loader for class solving resolution.
      Parameters:
      loader - the loader to use
    • getClassByName

      public Class<?> getClassByName(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 Field getField(Class<?> c, 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 String[] getFieldNames(Class<?> c)
      Gets the accessible field names known for a given class.
      Parameters:
      c - the class
      Returns:
      the class field names
    • getMethod

      public final Method getMethod(Class<?> c, String name, 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 Method getMethod(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 String[] getMethodNames(Class<?> c)
      Gets the accessible methods names known for a given class.
      Parameters:
      c - the class
      Returns:
      the class method names
    • getMethods

      public final Method[] getMethods(Class<?> c, 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 Constructor<?> getConstructor(Object ctorHandle, 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.
    • getMethodExecutor

      public final AbstractExecutor.Method getMethodExecutor(Object obj, String name, Object[] args)
      Returns a general method.
      Parameters:
      obj - the object
      name - the method name
      args - method arguments
      Returns:
      a AbstractExecutor.Method.
    • getGetExecutor

      public final AbstractExecutor.Get getGetExecutor(Object obj, Object identifier)
      Return a property getter.
      Parameters:
      obj - the object to base the property from.
      identifier - property name
      Returns:
      a AbstractExecutor.Get.
    • getSetExecutor

      public final AbstractExecutor.Set getSetExecutor(Object obj, Object identifier, 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.