Class DuckSetExecutor
- java.lang.Object
-
- org.apache.commons.jexl3.internal.introspection.AbstractExecutor
-
- org.apache.commons.jexl3.internal.introspection.AbstractExecutor.Set
-
- org.apache.commons.jexl3.internal.introspection.DuckSetExecutor
-
- All Implemented Interfaces:
JexlPropertySet
public final class DuckSetExecutor extends AbstractExecutor.Set
Specialized executor to set a property of an object.Duck as in duck-typing for an interface like:
interface Setable { Object set(Object property, Object value); }
orinterface Putable { Object put(Object property, Object value); }
- Since:
- 2.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.commons.jexl3.internal.introspection.AbstractExecutor
AbstractExecutor.Get, AbstractExecutor.Method, AbstractExecutor.Set
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Object
property
The property, may be null.private java.lang.Class<?>
valueClass
The property value class.-
Fields inherited from class org.apache.commons.jexl3.internal.introspection.AbstractExecutor
method, objectClass, TRY_FAILED
-
-
Constructor Summary
Constructors Modifier Constructor Description private
DuckSetExecutor(java.lang.Class<?> clazz, java.lang.reflect.Method method, java.lang.Object key, java.lang.Object value)
Creates an instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static DuckSetExecutor
discover(Introspector is, java.lang.Class<?> clazz, java.lang.Object key, java.lang.Object value)
Discovers a DuckSetExecutor.java.lang.Object
getTargetProperty()
Gets the property targeted by this executor.java.lang.Object
invoke(java.lang.Object obj, java.lang.Object value)
Method used to set the property value of an object.java.lang.Object
tryInvoke(java.lang.Object obj, java.lang.Object key, java.lang.Object value)
Attempts to reuse this JexlPropertySet, checking that it is compatible with the actual set of arguments.-
Methods inherited from class org.apache.commons.jexl3.internal.introspection.AbstractExecutor
castInteger, castString, classOf, equals, equals, getMethod, getMethodName, getTargetClass, hashCode, initMarker, isAlive, isCacheable, makeArgs, tryFailed
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.commons.jexl3.introspection.JexlPropertySet
isCacheable, tryFailed
-
-
-
-
Constructor Detail
-
DuckSetExecutor
private DuckSetExecutor(java.lang.Class<?> clazz, java.lang.reflect.Method method, java.lang.Object key, java.lang.Object value)
Creates an instance.- Parameters:
clazz
- the class the set method applies tomethod
- the method called through this executorkey
- the key to use as 1st argument to the set methodvalue
- the value to use as 2nd argument to the set method
-
-
Method Detail
-
discover
public static DuckSetExecutor discover(Introspector is, java.lang.Class<?> clazz, java.lang.Object key, java.lang.Object value)
Discovers a DuckSetExecutor.- Parameters:
is
- the introspectorclazz
- the class to find the set method fromkey
- the key to use as 1st argument to the set methodvalue
- the value to use as 2nd argument to the set method- Returns:
- the executor if found, null otherwise
-
getTargetProperty
public java.lang.Object getTargetProperty()
Description copied from class:AbstractExecutor
Gets the property targeted by this executor.- Overrides:
getTargetProperty
in classAbstractExecutor
- Returns:
- the target property
-
invoke
public java.lang.Object invoke(java.lang.Object obj, java.lang.Object value) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Description copied from interface:JexlPropertySet
Method used to set the property value of an object.- Parameters:
obj
- Object on which the property setter will be called with the valuevalue
- value to be set- Returns:
- the value returned from the set operation (impl specific)
- Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
tryInvoke
public java.lang.Object tryInvoke(java.lang.Object obj, java.lang.Object key, java.lang.Object value)
Description copied from interface:JexlPropertySet
Attempts to reuse this JexlPropertySet, checking that it is compatible with the actual set of arguments.- Parameters:
obj
- the object to invoke the get uponkey
- the property key to getvalue
- the property value to set- Returns:
- the result of the method invocation that should be checked by tryFailed to determine if it succeeded or failed.
-
-