| java.lang.Object org.apache.commons.chain.generic.DispatchCommand
DispatchCommand | abstract public class DispatchCommand implements Command(Code) | | An abstract base command which uses introspection to look up a method to execute.
For use by developers who prefer to group related functionality into a single class
rather than an inheritance family.
since: Chain 1.1 |
Field Summary | |
final protected static Class[] | DEFAULT_SIGNATURE The base implementation expects dispatch methods to take a Context
as their only argument. |
Method Summary | |
protected boolean | evaluateResult(Object o) Evaluate the result of the method invocation as a boolean value. | public boolean | execute(Context context) Look up the method specified by either "method" or "methodKey" and invoke it,
returning a boolean value as interpreted by evaluateResult .
Parameters: context - The Context to be processed by this Command. | protected Method | extractMethod(Context context) Extract the dispatch method. | protected Object[] | getArguments(Context context) Get the arguments to be passed into the dispatch method.
Default implementation simply returns the context which was passed in, but subclasses
could use this to wrap the context in some other type, or extract key values from the
context to pass in. | public String | getMethod() Return the method name. | public String | getMethodKey() Return the Context key for the method name. | protected Class[] | getSignature() Return a Class[] describing the expected signature of the method. | public void | setMethod(String method) Set the method name. | public void | setMethodKey(String methodKey) Set the Context key for the method name. |
DEFAULT_SIGNATURE | final protected static Class[] DEFAULT_SIGNATURE(Code) | | The base implementation expects dispatch methods to take a Context
as their only argument.
|
evaluateResult | protected boolean evaluateResult(Object o)(Code) | | Evaluate the result of the method invocation as a boolean value. Base implementation
expects that the invoked method returns boolean true/false, but subclasses might
implement other interpretations.
Parameters: o - The result of the methid execution The evaluated result/ |
execute | public boolean execute(Context context) throws Exception(Code) | | Look up the method specified by either "method" or "methodKey" and invoke it,
returning a boolean value as interpreted by evaluateResult .
Parameters: context - The Context to be processed by this Command. the result of method being dispatched to. throws: IllegalStateException - if neither 'method' nor 'methodKey' properties are defined throws: Exception - if any is thrown by the invocation. Note that if invoking the methodresults in an InvocationTargetException, the cause of that exception is thrown instead ofthe exception itself, unless the cause is an Error or other Throwable which is not an Exception . |
extractMethod | protected Method extractMethod(Context context) throws NoSuchMethodException(Code) | | Extract the dispatch method. The base implementation uses the command's
method property as the name of a method to look up, or, if that is not defined,
looks up the the method name in the Context using the methodKey .
Parameters: context - The Context being processed by this Command. The method to execute throws: NoSuchMethodException - if no method can be found under the specified name. throws: NullPointerException - if no methodName cannot be determined |
getArguments | protected Object[] getArguments(Context context)(Code) | | Get the arguments to be passed into the dispatch method.
Default implementation simply returns the context which was passed in, but subclasses
could use this to wrap the context in some other type, or extract key values from the
context to pass in. The length and types of values returned by this must coordinate
with the return value of getSignature()
Parameters: context - The Context being processed by this Command. The method arguments. |
getMethod | public String getMethod()(Code) | | Return the method name.
The method name. |
getMethodKey | public String getMethodKey()(Code) | | Return the Context key for the method name.
The Context key for the method name. |
getSignature | protected Class[] getSignature()(Code) | | Return a Class[] describing the expected signature of the method.
The method signature. |
setMethod | public void setMethod(String method)(Code) | | Set the method name.
Parameters: method - The method name. |
setMethodKey | public void setMethodKey(String methodKey)(Code) | | Set the Context key for the method name.
Parameters: methodKey - The Context key for the method name. |
|
|