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
Constructor Summary |
DuckGetExecutor(Introspector is,
java.lang.Class<?> clazz,
java.lang.Object identifier)
Creates an instance by attempting discovery of the get method. |
Method Summary |
java.lang.Object |
execute(java.lang.Object obj)
Get the property from the object. |
java.lang.Object |
getTargetProperty()
Gets the property targeted by this executor. |
java.lang.Object |
tryExecute(java.lang.Object obj,
java.lang.Object key)
Tries to reuse this executor, checking that it is compatible with
the actual set of arguments. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
DuckGetExecutor
public DuckGetExecutor(Introspector is,
java.lang.Class<?> clazz,
java.lang.Object identifier)
- Creates an instance by attempting discovery of the get method.
- Parameters:
is
- the introspectorclazz
- the class to introspectidentifier
- the property to get
getTargetProperty
public java.lang.Object getTargetProperty()
- Gets the property targeted by this executor.
- Overrides:
getTargetProperty
in class AbstractExecutor
- Returns:
- the target property
execute
public java.lang.Object execute(java.lang.Object obj)
throws java.lang.IllegalAccessException,
java.lang.reflect.InvocationTargetException
- Get the property from the object.
- Specified by:
execute
in class AbstractExecutor.Get
- Parameters:
obj
- the object.
- Returns:
- object.get(property)
- Throws:
java.lang.IllegalAccessException
- Method is inaccessible.
java.lang.reflect.InvocationTargetException
- Method body throws an exception.
tryExecute
public java.lang.Object tryExecute(java.lang.Object obj,
java.lang.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.
Copyright © 2001-2010 Apache Software Foundation. All Rights Reserved.