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

java.lang.Object
  extended by org.apache.commons.jexl2.internal.AbstractExecutor
      extended by org.apache.commons.jexl2.internal.AbstractExecutor.Method
All Implemented Interfaces:
JexlMethod
Direct Known Subclasses:
MethodExecutor
Enclosing class:
AbstractExecutor

public abstract static class AbstractExecutor.Method
extends AbstractExecutor
implements JexlMethod

Abstract class that is used to execute an arbitrary method.


Nested Class Summary
protected static class AbstractExecutor.Method.Parameter
          A helper class to pass the method & parameters.
 
Nested classes/interfaces inherited from class org.apache.commons.jexl2.internal.AbstractExecutor
AbstractExecutor.Get, AbstractExecutor.Method, AbstractExecutor.Set
 
Field Summary
protected  MethodKey key
          The method key discovered from the arguments.
 
Fields inherited from class org.apache.commons.jexl2.internal.AbstractExecutor
method, objectClass, TRY_FAILED
 
Constructor Summary
protected AbstractExecutor.Method(Class<?> c, AbstractExecutor.Method.Parameter km)
          Creates a new instance.
 
Method Summary
abstract  Object execute(Object obj, Object[] args)
          Invokes the method to be executed.
 Class<?> getReturnType()
          Returns the return type of the method invoked.
 Object getTargetProperty()
          Gets the property targeted by this executor.
 Object invoke(Object obj, Object[] params)
          Invocation method, called when the method invocation should be performed and a value returned.
 Object tryExecute(String name, Object obj, Object[] args)
          Tries to reuse this executor, checking that it is compatible with the actual set of arguments.
 Object tryInvoke(String name, Object obj, Object[] params)
          Attempts to reuse this JexlMethod, 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, 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.JexlMethod
isCacheable, tryFailed
 

Field Detail

key

protected final MethodKey key
The method key discovered from the arguments.

Constructor Detail

AbstractExecutor.Method

protected AbstractExecutor.Method(Class<?> c,
                                  AbstractExecutor.Method.Parameter km)
Creates a new instance.

Parameters:
c - the class this executor applies to
km - the method and MethodKey to encapsulate.
Method Detail

invoke

public final Object invoke(Object obj,
                           Object[] params)
                    throws Exception
Invocation method, called when the method invocation should be performed and a value returned.

Specified by:
invoke in interface JexlMethod
Parameters:
obj - the object
params - method parameters.
Returns:
the result
Throws:
Exception - on any error.

tryInvoke

public final Object tryInvoke(String name,
                              Object obj,
                              Object[] params)
Attempts to reuse this JexlMethod, checking that it is compatible with the actual set of arguments. Related to isCacheable since this method is often used with cached JexlMethod instances.

Specified by:
tryInvoke in interface JexlMethod
Parameters:
name - the method name
obj - the object to invoke the method upon
params - the method arguments
Returns:
the result of the method invocation that should be checked by tryFailed to determine if it succeeded or failed.

getTargetProperty

public Object getTargetProperty()
Gets the property targeted by this executor.

Overrides:
getTargetProperty in class AbstractExecutor
Returns:
the target property

getReturnType

public final Class<?> getReturnType()
Returns the return type of the method invoked.

Specified by:
getReturnType in interface JexlMethod
Returns:
return type

execute

public abstract Object execute(Object obj,
                               Object[] args)
                        throws IllegalAccessException,
                               InvocationTargetException
Invokes the method to be executed.

Parameters:
obj - the object to invoke the method upon
args - the method arguments
Returns:
the result of the method invocation
Throws:
IllegalAccessException - Method is inaccessible.
InvocationTargetException - Method body throws an exception.

tryExecute

public Object tryExecute(String name,
                         Object obj,
                         Object[] args)
Tries to reuse this executor, checking that it is compatible with the actual set of arguments.

Parameters:
obj - the object to invoke the method upon
name - the method name
args - the method arguments
Returns:
the result of the method invocation or TRY_FAILED if checking failed.


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