org.apache.commons.jexl2.internal
Class AbstractExecutor.Set

java.lang.Object
  extended by org.apache.commons.jexl2.internal.AbstractExecutor
      extended by org.apache.commons.jexl2.internal.AbstractExecutor.Set
All Implemented Interfaces:
JexlPropertySet
Direct Known Subclasses:
DuckSetExecutor, ListSetExecutor, MapSetExecutor, PropertySetExecutor
Enclosing class:
AbstractExecutor

public abstract static class AbstractExecutor.Set
extends AbstractExecutor
implements JexlPropertySet

Abstract class that is used to execute an arbitrary 'set' method.


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
protected AbstractExecutor.Set(Class<?> theClass, Method theMethod)
          Default and sole constructor.
 
Method Summary
abstract  Object execute(Object obj, Object value)
          Sets the property value of an object.
 Object invoke(Object obj, Object arg)
          Method used to set the property value of an object.
 Object tryExecute(Object obj, Object key, Object value)
          Tries to reuse this executor, checking that it is compatible with the actual set of arguments.
 Object tryInvoke(Object obj, Object key, 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.jexl2.internal.AbstractExecutor
equals, equals, getMethod, getMethodName, getTargetClass, getTargetProperty, 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.JexlPropertySet
isCacheable, tryFailed
 

Constructor Detail

AbstractExecutor.Set

protected AbstractExecutor.Set(Class<?> theClass,
                               Method theMethod)
Default and sole constructor.

Parameters:
theClass - the class this executor applies to
theMethod - the method held by this executor
Method Detail

invoke

public final Object invoke(Object obj,
                           Object arg)
                    throws Exception
Method used to set the property value of an object.

Specified by:
invoke in interface JexlPropertySet
Parameters:
obj - Object on which the property setter will be called with the value
arg - value to be set
Returns:
the value returned from the set operation (impl specific)
Throws:
Exception - on any error.

tryInvoke

public final Object tryInvoke(Object obj,
                              Object key,
                              Object value)
Attempts to reuse this JexlPropertySet, checking that it is compatible with the actual set of arguments.

Specified by:
tryInvoke in interface JexlPropertySet
Parameters:
obj - the object to invoke the the get upon
key - the property key to get
value - 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.

execute

public abstract Object execute(Object obj,
                               Object value)
                        throws IllegalAccessException,
                               InvocationTargetException
Sets the property value of an object.

Parameters:
obj - The object to set the property in.
value - The value.
Returns:
The return value.
Throws:
IllegalAccessException - Method is inaccessible.
InvocationTargetException - Method body throws an exception.

tryExecute

public Object tryExecute(Object obj,
                         Object key,
                         Object value)
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, 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) and that arg must be a valid argument for this executor underlying method.

Parameters:
obj - The object to invoke the method from.
key - The property to set in the object.
value - The value to use as the property value.
Returns:
The return value or TRY_FAILED if checking failed.


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.