org.apache.commons.jexl2.internal
Class Introspector

java.lang.Object
  extended by 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 Summary
protected  org.apache.commons.logging.Log rlog
          The logger to use for all warnings & errors.
 
Constructor Summary
protected Introspector(org.apache.commons.logging.Log log)
          Creates an introspector.
 
Method Summary
protected  IntrospectorBase base()
          Gets the current introspector base.
 Class<?> getClassByName(String className)
          Gets a class by name through this introspector class loader.
 Constructor<?> getConstructor(Object ctorHandle, Object[] args)
          Returns a general constructor.
 Field getField(Class<?> c, String key)
          Gets the field named by key for the class c.
 String[] getFieldNames(Class<?> c)
          Gets the accessible field names known for a given class.
 AbstractExecutor.Get getGetExecutor(Object obj, Object identifier)
          Return a property getter.
 Method getMethod(Class<?> c, MethodKey key)
          Gets the method defined by key and for the Class c.
 Method getMethod(Class<?> c, String name, Object[] params)
          Gets the method defined by name and params for the Class c.
 AbstractExecutor.Method getMethodExecutor(Object obj, String name, Object[] args)
          Returns a general method.
 String[] getMethodNames(Class<?> c)
          Gets the accessible methods names known for a given class.
 Method[] getMethods(Class<?> c, String methodName)
          Gets all the methods with a given name from this map.
 AbstractExecutor.Set getSetExecutor(Object obj, Object identifier, Object arg)
          Return a property setter.
 void setClassLoader(ClassLoader loader)
          Sets the underlying class loader for class solving resolution.
protected  Integer toInteger(Object arg)
          Coerce an Object to an Integer.
protected  String toString(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 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.


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.