Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.jexl3.internal.introspection
Class Introspector

    java.lang.Object
      org.apache.commons.jexl3.internal.introspection.Introspector

    public final class Introspector

extends 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 Hashtable where Method objects are keyed by the aggregation of the method name and the array of parameters classes. This mapping is performed for all the public methods of a class and stored.

Since:
  1.0

Field Summary
`protected org.apache.commons.logging.Log` | `rlog` the logger.

Constructor Summary
`Introspector(org.apache.commons.logging.Log log, ClassLoader cloader)` Create the introspector.

Method Summary
`Class<?>` | `getClassByName(String className)` Gets a class by name through this introspector class loader.
`Constructor<?>` | `getConstructor(Class<?> c, MethodKey key)` Gets the constructor defined by the `MethodKey`.
`Constructor<?>` | `getConstructor(MethodKey key)` Gets the constructor defined by the `MethodKey`.
`Field` | `getField(Class<?> c, String key)` Gets the field named by `key` for the class `c`.
`String[]` | `getFieldNames(Class<?> c)` Gets the array of accessible field names known for a given class.
`ClassLoader` | `getLoader()` Gets the class loader used by this introspector.
`Method` | `getMethod(Class<?> c, MethodKey key)` Gets the method defined by the `MethodKey` for the class `c`.
`Method` | `getMethod(Class<?> c, String name, Object[] params)` Gets a method defined by a class, a name and a set of parameters.
`String[]` | `getMethodNames(Class<?> c)` Gets the array of accessible methods names known for a given class.
`Method[]` | `getMethods(Class<?> c, String methodName)` Gets the array of accessible method known for a given class.
`void` | `setLoader(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

### Introspector

    public Introspector(org.apache.commons.logging.Log log,
                        ClassLoader cloader)

  Create the introspector.

  Parameters:
    `log` - the logger to use
    `cloader` - the class loader

Method Detail

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

### getMethod

    public Method getMethod(Class<?> c,
                            String name,
                            Object[] params)

  Gets a method defined by a class, a name and a set of parameters.

  Parameters:
    `c` - the class
    `name` - the method name
    `params` - the method parameters
  Returns:
    the desired method object
  Throws:
    `MethodKey.AmbiguousException` - if no unambiguous method could be found through introspection

### getMethod

    public Method getMethod(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 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:
    the desired field or null if it does not exist or is not accessible

### getFieldNames

    public String[] getFieldNames(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 String[] getMethodNames(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 Method[] getMethods(Class<?> c,
                               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)

### getConstructor

    public 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 Constructor<?> getConstructor(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.

### setLoader

    public void setLoader(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

### getLoader

    public ClassLoader getLoader()

  Gets the class loader used by this introspector.

  Returns:
    the class loader

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001–2017 The Apache Software Foundation. All rights reserved.