org.apache.commons.jexl2.internal
Class MethodExecutor
java.lang.Object
org.apache.commons.jexl2.internal.AbstractExecutor
org.apache.commons.jexl2.internal.AbstractExecutor.Method
org.apache.commons.jexl2.internal.MethodExecutor
- All Implemented Interfaces:
- JexlMethod
public final class MethodExecutor
- extends AbstractExecutor.Method
Specialized executor to invoke a method on an object.
- Since:
- 2.0
Constructor Summary |
MethodExecutor(Introspector is,
java.lang.Object obj,
java.lang.String name,
java.lang.Object[] args)
Creates a new instance. |
Method Summary |
java.lang.Object |
execute(java.lang.Object o,
java.lang.Object[] args)
Invokes the method to be executed. |
protected java.lang.Object[] |
handleVarArg(java.lang.Class<?> type,
int index,
java.lang.Object[] actual)
Reassembles arguments if the method is a vararg method. |
java.lang.Object |
tryExecute(java.lang.String name,
java.lang.Object o,
java.lang.Object[] args)
Tries to reuse this executor, checking that it is compatible with
the actual set of arguments. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
MethodExecutor
public MethodExecutor(Introspector is,
java.lang.Object obj,
java.lang.String name,
java.lang.Object[] args)
- Creates a new instance.
- Parameters:
is
- the introspector used to discover the methodobj
- the object to find the method inname
- the method nameargs
- the method arguments
execute
public java.lang.Object execute(java.lang.Object o,
java.lang.Object[] args)
throws java.lang.IllegalAccessException,
java.lang.reflect.InvocationTargetException
- Invokes the method to be executed.
- Specified by:
execute
in class AbstractExecutor.Method
- Parameters:
o
- the object to invoke the method uponargs
- the method arguments
- Returns:
- the result of the method invocation
- Throws:
java.lang.IllegalAccessException
- Method is inaccessible.
java.lang.reflect.InvocationTargetException
- Method body throws an exception.
tryExecute
public java.lang.Object tryExecute(java.lang.String name,
java.lang.Object o,
java.lang.Object[] args)
- Tries to reuse this executor, checking that it is compatible with
the actual set of arguments.
- Overrides:
tryExecute
in class AbstractExecutor.Method
- Parameters:
name
- the method nameo
- the object to invoke the method uponargs
- the method arguments
- Returns:
- the result of the method invocation or TRY_FAILED if checking failed.
handleVarArg
protected java.lang.Object[] handleVarArg(java.lang.Class<?> type,
int index,
java.lang.Object[] actual)
- Reassembles arguments if the method is a vararg method.
- Parameters:
type
- The vararg class type (aka component type
of the expected array arg)index
- The index of the vararg in the method declaration
(This will always be one less than the number of
expected arguments.)actual
- The actual parameters being passed to this method
- Returns:
- The actual parameters adjusted for the varargs in order
to fit the method declaration.
Copyright © 2001-2011 Apache Software Foundation. All Rights Reserved.