com.opensymphony.xwork
Class DefaultActionInvocation

java.lang.Object
  extended bycom.opensymphony.xwork.DefaultActionInvocation
All Implemented Interfaces:
ActionInvocation, Serializable

public class DefaultActionInvocation
extends Object
implements ActionInvocation

The Default ActionInvocation implementation

Version:
$Revision: 1.23 $
Author:
$Author: plightbo $
See Also:
DefaultActionProxy, Serialized Form

Field Summary
protected  Action action
           
protected  boolean executed
           
protected  Map extraContext
           
protected  Iterator interceptors
           
protected  ActionContext invocationContext
           
protected  List preResultListeners
           
protected  ActionProxy proxy
           
protected  boolean pushAction
           
protected  Result result
           
protected  String resultCode
           
protected  OgnlValueStack stack
           
 
Constructor Summary
protected DefaultActionInvocation(ActionProxy proxy)
           
protected DefaultActionInvocation(ActionProxy proxy, Map extraContext)
           
protected DefaultActionInvocation(ActionProxy proxy, Map extraContext, boolean pushAction)
           
 
Method Summary
 void addPreResultListener(PreResultListener listener)
          Register a com.opensymphony.xwork.interceptor.PreResultListener to be notified after the Action is executed and before the Result is executed.
protected  void createAction()
           
protected  Map createContextMap()
           
 Result createResult()
           
 Action getAction()
          Get the Action associated with this ActionInvocation
 ActionContext getInvocationContext()
          Gets the ActionContext associated with this ActionInvocation.
 ActionProxy getProxy()
          Get the ActionProxy holding this ActionInvocation
 Result getResult()
          If the DefaultActionInvocation has been executed before and the Result is an instance of ActionChainResult, this method will walk down the chain of ActionChainResults until it finds a non-chain result, which will be returned.
 String getResultCode()
          Gets the result code returned from this ActionInvocation
 OgnlValueStack getStack()
           
 String invoke()
          Invokes the next step in processing this ActionInvocation.
protected  String invokeAction(Action action, ActionConfig actionConfig)
           
 boolean isExecuted()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

action

protected Action action

proxy

protected ActionProxy proxy

preResultListeners

protected List preResultListeners

extraContext

protected Map extraContext

invocationContext

protected ActionContext invocationContext

interceptors

protected Iterator interceptors

stack

protected OgnlValueStack stack

result

protected Result result

resultCode

protected String resultCode

executed

protected boolean executed

pushAction

protected boolean pushAction
Constructor Detail

DefaultActionInvocation

protected DefaultActionInvocation(ActionProxy proxy)
                           throws Exception

DefaultActionInvocation

protected DefaultActionInvocation(ActionProxy proxy,
                                  Map extraContext)
                           throws Exception

DefaultActionInvocation

protected DefaultActionInvocation(ActionProxy proxy,
                                  Map extraContext,
                                  boolean pushAction)
                           throws Exception
Method Detail

getAction

public Action getAction()
Description copied from interface: ActionInvocation
Get the Action associated with this ActionInvocation

Specified by:
getAction in interface ActionInvocation

isExecuted

public boolean isExecuted()
Specified by:
isExecuted in interface ActionInvocation
Returns:
whether this ActionInvocation has executed before. This will be set after the Action and the Result have executed.

getInvocationContext

public ActionContext getInvocationContext()
Description copied from interface: ActionInvocation
Gets the ActionContext associated with this ActionInvocation. The ActionProxy is responsible for setting this ActionContext onto the ThreadLocal before invoking the ActionInvocation and resetting the old ActionContext afterwards.

Specified by:
getInvocationContext in interface ActionInvocation

getProxy

public ActionProxy getProxy()
Description copied from interface: ActionInvocation
Get the ActionProxy holding this ActionInvocation

Specified by:
getProxy in interface ActionInvocation

getResult

public Result getResult()
                 throws Exception
If the DefaultActionInvocation has been executed before and the Result is an instance of ActionChainResult, this method will walk down the chain of ActionChainResults until it finds a non-chain result, which will be returned. If the DefaultActionInvocation's result has not been executed before, the Result instance will be created and populated with the result params.

Specified by:
getResult in interface ActionInvocation
Returns:
a Result instance
Throws:
Exception

getResultCode

public String getResultCode()
Description copied from interface: ActionInvocation
Gets the result code returned from this ActionInvocation

Specified by:
getResultCode in interface ActionInvocation

getStack

public OgnlValueStack getStack()
Specified by:
getStack in interface ActionInvocation
Returns:
the ValueStack associated with this ActionInvocation

addPreResultListener

public void addPreResultListener(PreResultListener listener)
Register a com.opensymphony.xwork.interceptor.PreResultListener to be notified after the Action is executed and before the Result is executed. The ActionInvocation implementation must guarantee that listeners will be called in the order in which they are registered. Listener registration and execution does not need to be thread-safe.

Specified by:
addPreResultListener in interface ActionInvocation
Parameters:
listener -

createResult

public Result createResult()
                    throws Exception
Throws:
Exception

invoke

public String invoke()
              throws Exception
Description copied from interface: ActionInvocation
Invokes the next step in processing this ActionInvocation. If there are more Interceptors, this will call the next one. If Interceptors choose not to short-circuit ActionInvocation processing and return their own return code, they will call invoke() to allow the next Interceptor to execute. If there are no more Interceptors to be applied, the Action is executed. If the ActionProxy getExecuteResult() method returns true, the Result is also executed.

Specified by:
invoke in interface ActionInvocation
Throws:
Exception

createAction

protected void createAction()

createContextMap

protected Map createContextMap()

invokeAction

protected String invokeAction(Action action,
                              ActionConfig actionConfig)
                       throws Exception
Throws:
Exception

XWork Project Page