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

java.lang.Object
  extended by org.apache.commons.jexl2.internal.AbstractExecutor
      extended by org.apache.commons.jexl2.internal.AbstractExecutor.Get
All Implemented Interfaces:
JexlPropertyGet
Direct Known Subclasses:
BooleanGetExecutor, DuckGetExecutor, ListGetExecutor, MapGetExecutor, PropertyGetExecutor
Enclosing class:
AbstractExecutor

public abstract static class AbstractExecutor.Get
extends AbstractExecutor
implements JexlPropertyGet

Abstract class that is used to execute an arbitrary 'get' 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.Get(Class<?> theClass, Method theMethod)
          Default and sole constructor.
 
Method Summary
abstract  Object execute(Object obj)
          Gets the property value from an object.
 Object invoke(Object obj)
          Method used to get the property value of an object.
 Object tryExecute(Object obj, Object key)
          Tries to reuse this executor, checking that it is compatible with the actual set of arguments.
 Object tryInvoke(Object obj, Object key)
          Attempts to reuse this JexlPropertyGet, 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.JexlPropertyGet
isCacheable, tryFailed
 

Constructor Detail

AbstractExecutor.Get

protected AbstractExecutor.Get(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)
                    throws Exception
Method used to get the property value of an object.

Specified by:
invoke in interface JexlPropertyGet
Parameters:
obj - the object to get the property value from.
Returns:
the property value.
Throws:
Exception - on any error.

tryInvoke

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

Specified by:
tryInvoke in interface JexlPropertyGet
Parameters:
obj - the object to invoke the property get upon
key - the property key to get
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)
                        throws IllegalAccessException,
                               InvocationTargetException
Gets the property value from an object.

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

tryExecute

public Object tryExecute(Object obj,
                         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).

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-2011 The Apache Software Foundation. All Rights Reserved.