Class DuckGetExecutor
java.lang.Object
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor.Get
edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.DuckGetExecutor
- All Implemented Interfaces:
JexlPropertyGet
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 edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor
AbstractExecutor.Get, AbstractExecutor.Method, AbstractExecutor.Set
-
Field Summary
Fields inherited from class edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor
method, objectClass, TRY_FAILED
-
Constructor Summary
ConstructorDescriptionDuckGetExecutor
(Introspector is, Class<?> clazz, Object identifier) Creates an instance by attempting discovery of the get method. -
Method Summary
Modifier and TypeMethodDescriptionGet the property from the object.Gets the property targeted by this executor.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 edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.internal.AbstractExecutor.Get
invoke, tryInvoke
Methods inherited from class edu.internet2.middleware.grouperClientExt.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 edu.internet2.middleware.grouperClientExt.org.apache.commons.jexl2.introspection.JexlPropertyGet
isCacheable, tryFailed
-
Constructor Details
-
DuckGetExecutor
Creates an instance by attempting discovery of the get method.- Parameters:
is
- the introspectorclazz
- the class to introspectidentifier
- the property to get
-
-
Method Details
-
getTargetProperty
Gets the property targeted by this executor.- Overrides:
getTargetProperty
in classAbstractExecutor
- Returns:
- the target property
-
execute
Get the property from the object.- Specified by:
execute
in classAbstractExecutor.Get
- Parameters:
obj
- the object.- Returns:
- object.get(property)
- Throws:
IllegalAccessException
- Method is inaccessible.InvocationTargetException
- Method body throws an exception.
-
tryExecute
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 andproperty
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 classAbstractExecutor.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.
-