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.jexl2.introspection
Class UberspectImpl

    java.lang.Object
      org.apache.commons.jexl2.internal.Introspector
          org.apache.commons.jexl2.introspection.UberspectImpl

All Implemented Interfaces:
  Uberspect

Direct Known Subclasses:
  SandboxUberspectImpl

    public class UberspectImpl

extends Introspector
implements Uberspect

Implementation of Uberspect to provide the default introspective functionality of JEXL.

This is the class to derive to customize introspection.

Since:
  1.0

Nested Class Summary
`static class` | `UberspectImpl.FieldPropertyGet` Deprecated. Do not use externally - will be made private in a later version
`static class` | `UberspectImpl.FieldPropertySet` Deprecated. Do not use externally - will be made private in a later version
`static class` | `UberspectImpl.IndexedContainer` A generic indexed property container, exposes get(key) and set(key, value) and solves method call dynamically based on arguments.

Field Summary
`static Object` | `TRY_FAILED` Publicly exposed special failure object returned by tryInvoke.

Fields inherited from class org.apache.commons.jexl2.internal.Introspector
`rlog`

Constructor Summary
`UberspectImpl(org.apache.commons.logging.Log runtimeLogger)` Creates a new UberspectImpl.

Method Summary
`Constructor<?>` | `getConstructor(Object ctorHandle, Object[] args, JexlInfo info)` Deprecated.
`JexlMethod` | `getConstructorMethod(Object ctorHandle, Object[] args, JexlInfo info)` Returns a class constructor wrapped in a JexlMethod.
`Field` | `getField(Object obj, String name, JexlInfo info)` Returns a class field.
`protected JexlPropertyGet` | `getIndexedGet(Object object, String name)` Attempts to find an indexed-property getter in an object.
`Iterator<?>` | `getIterator(Object obj, JexlInfo info)` Gets an iterator from an object.
`JexlMethod` | `getMethod(Object obj, String method, Object[] args, JexlInfo info)` Returns a JexlMethod.
`JexlPropertyGet` | `getPropertyGet(Object obj, Object identifier, JexlInfo info)` Property getter.
`JexlPropertySet` | `getPropertySet(Object obj, Object identifier, Object arg, JexlInfo info)` Property setter.
`void` | `setLoader(ClassLoader cloader)` Resets this Uberspect class loader.

Methods inherited from class org.apache.commons.jexl2.internal.Introspector
`base, getClassByName, getConstructor, getField, getFieldNames, getGetExecutor, getMethod, getMethod, getMethodExecutor, getMethodNames, getMethods, getSetExecutor, setClassLoader, toInteger, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.commons.jexl2.introspection.Uberspect
`setClassLoader`

Field Detail

### TRY_FAILED

    public static final Object TRY_FAILED

  Publicly exposed special failure object returned by tryInvoke.

Constructor Detail

### UberspectImpl

    public UberspectImpl(org.apache.commons.logging.Log runtimeLogger)

  Creates a new UberspectImpl.

  Parameters:
    `runtimeLogger` - the logger used for all logging needs

Method Detail

### setLoader

    public void setLoader(ClassLoader cloader)

  Resets this Uberspect class loader.

  Parameters:
    `cloader` - the class loader to use
  Since:
    2.1

### getIterator

    public Iterator<?> getIterator(Object obj,
                                   JexlInfo info)

  Gets an iterator from an object.

  Specified by:
    `getIterator` in interface `Uberspect`
  Parameters:
    `obj` - to get the iterator for
    `info` - contextual information
  Returns:
    an iterator over obj

### getMethod

    public JexlMethod getMethod(Object obj,
                                String method,
                                Object[] args,
                                JexlInfo info)

  Returns a JexlMethod.

  Specified by:
    `getMethod` in interface `Uberspect`
  Parameters:
    `obj` - the object
    `method` - the method name
    `args` - method arguments
    `info` - contextual information
  Returns:
    a `JexlMethod`

### getConstructor

    @Deprecated
    public Constructor<?> getConstructor(Object ctorHandle,
                                                    Object[] args,
                                                    JexlInfo info)

  Deprecated.

  Returns a class constructor.

  Specified by:
    `getConstructor` in interface `Uberspect`
  Parameters:
    `ctorHandle` - a class or class name
    `args` - constructor arguments
    `info` - contextual information
  Returns:
    a `Constructor`

### getConstructorMethod

    public JexlMethod getConstructorMethod(Object ctorHandle,
                                           Object[] args,
                                           JexlInfo info)

  Returns a class constructor wrapped in a JexlMethod.

  Specified by:
    `getConstructorMethod` in interface `Uberspect`
  Parameters:
    `ctorHandle` - a class or class name
    `args` - constructor arguments
    `info` - contextual information
  Returns:
    a `Constructor`
  Since:
    2.1

### getPropertyGet

    public JexlPropertyGet getPropertyGet(Object obj,
                                          Object identifier,
                                          JexlInfo info)

  Property getter.

  Returns JexlPropertyGet appropos for ${bar.woogie}.

  Specified by:
    `getPropertyGet` in interface `Uberspect`
  Parameters:
    `obj` - the object to get the property from
    `identifier` - property name
    `info` - contextual information
  Returns:
    a `JexlPropertyGet`

### getPropertySet

    public JexlPropertySet getPropertySet(Object obj,
                                          Object identifier,
                                          Object arg,
                                          JexlInfo info)

  Property setter.

  returns JelPropertySet appropos for ${foo.bar = "geir"}

  .

  Specified by:
    `getPropertySet` in interface `Uberspect`
  Parameters:
    `obj` - the object to get the property from.
    `identifier` - property name
    `arg` - value to set
    `info` - contextual information
  Returns:
    a `JexlPropertySet`.

### getField

    public Field getField(Object obj,
                          String name,
                          JexlInfo info)

  Returns a class field. Only for use by sub-classes, will be made protected in a later version

  Parameters:
    `obj` - the object
    `name` - the field name
    `info` - debug info
  Returns:
    a `Field`.

### getIndexedGet

    protected JexlPropertyGet getIndexedGet(Object object,
                                            String name)

  Attempts to find an indexed-property getter in an object. The code attempts to find the list of methods getXXX() and setXXX(). Note that this is not equivalent to the strict bean definition of indexed properties; the type of the key is not necessarily an int and the set/get arrays are not resolved.

  Parameters:
    `object` - the object
    `name` - the container name
  Returns:
    a JexlPropertyGet is successfull, null otherwise
  Since:
    2.1

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-2011 The Apache Software Foundation. All Rights Reserved.