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.internal
Class DuckGetExecutor

    java.lang.Object
      org.apache.commons.jexl2.internal.AbstractExecutor
          org.apache.commons.jexl2.internal.AbstractExecutor.Get
              org.apache.commons.jexl2.internal.DuckGetExecutor

All Implemented Interfaces:
  JexlPropertyGet

    public final class DuckGetExecutor

extends AbstractExecutor.Get

Specialized executor to get a property from an object.

Duck as in duck-typing for an interface like: `interface Get { Object get(Object key); }`

Since:
  2.0

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.commons.jexl2.internal.AbstractExecutor
`AbstractExecutor.Get, AbstractExecutor.Method, AbstractExecutor.Set`

Field Summary

Fields inherited from class org.apache.commons.jexl2.internal.AbstractExecutor
`method, objectClass, TRY_FAILED`

Constructor Summary
`DuckGetExecutor(Introspector is, Class<?> clazz, Object identifier)` Creates an instance by attempting discovery of the get method.

Method Summary
`Object` | `execute(Object obj)` Get the property from the object.
`Object` | `getTargetProperty()` Gets the property targeted by this executor.
`Object` | `tryExecute(Object obj, Object key)` Tries to reuse this executor, checking that it is compatible with the actual set of arguments.

Methods inherited from class org.apache.commons.jexl2.internal.AbstractExecutor.Get
`invoke, tryInvoke`

Methods inherited from class org.apache.commons.jexl2.internal.AbstractExecutor
`equals, equals, getMethod, getMethodName, getTargetClass, hashCode, isAlive, isCacheable, tryFailed`

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

Methods inherited from interface org.apache.commons.jexl2.introspection.JexlPropertyGet
`isCacheable, tryFailed`

Constructor Detail

### DuckGetExecutor

    public DuckGetExecutor(Introspector is,
                           Class<?> clazz,
                           Object identifier)

  Creates an instance by attempting discovery of the get method.

  Parameters:
    `is` - the introspector
    `clazz` - the class to introspect
    `identifier` - the property to get

Method Detail

### getTargetProperty

    public Object getTargetProperty()

  Gets the property targeted by this executor.

  Overrides:
    `getTargetProperty` in class `AbstractExecutor`
  Returns:
    the target property

### execute

    public Object execute(Object obj)
                   throws IllegalAccessException,
                          InvocationTargetException

  Get the property from the object.

  Specified by:
    `execute` in class `AbstractExecutor.Get`
  Parameters:
    `obj` - the object.
  Returns:
    object.get(property)
  Throws:
    `IllegalAccessException` - Method is inaccessible.
    `InvocationTargetException` - Method body throws an exception.

### tryExecute

    public Object tryExecute(Object obj,
                             Object key)

  Tries to reuse this executor, checking that it is compatible with the actual set of arguments.

  Compatibility means that: `o` must be of the same class as this executor's target class and `property` must be of the same class as this executor's target property (for list and map based executors) and have the same value (for other types).

  Overrides:
    `tryExecute` in class `AbstractExecutor.Get`
  Parameters:
    `obj` - The object to get the property from.
    `key` - The property to get from the object.
  Returns:
    The property value or TRY_FAILED if checking failed.

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