public final class DuckGetExecutor extends AbstractExecutor.Get
Duck as in duck-typing for an interface like:
interface Get {
Object get(Object key);
}
AbstractExecutor.Get, AbstractExecutor.Method, AbstractExecutor.Set
method, objectClass, TRY_FAILED
Constructor and Description |
---|
DuckGetExecutor(Introspector is,
Class<?> clazz,
Object identifier)
Creates an instance by attempting discovery of the get method.
|
Modifier and Type | Method and Description |
---|---|
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.
|
invoke, tryInvoke
equals, equals, getMethod, getMethodName, getTargetClass, hashCode, isAlive, isCacheable, tryFailed
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
isCacheable, tryFailed
public DuckGetExecutor(Introspector is, Class<?> clazz, Object identifier)
is
- the introspectorclazz
- the class to introspectidentifier
- the property to getpublic Object getTargetProperty()
getTargetProperty
in class AbstractExecutor
public Object execute(Object obj) throws IllegalAccessException, InvocationTargetException
execute
in class AbstractExecutor.Get
obj
- the object.IllegalAccessException
- Method is inaccessible.InvocationTargetException
- Method body throws an exception.public Object tryExecute(Object obj, Object key)
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).
tryExecute
in class AbstractExecutor.Get
obj
- The object to get the property from.key
- The property to get from the object.Copyright © 2016 Internet2. All rights reserved.