Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.opensymphony.xwork2
Class DefaultActionInvocation

    java.lang.Object
      com.opensymphony.xwork2.DefaultActionInvocation

All Implemented Interfaces:
  ActionInvocation, Serializable

Direct Known Subclasses:
  DWRValidator.ValidatorActionInvocation

    public class DefaultActionInvocation

extends Object
implements ActionInvocation

The Default ActionInvocation implementation

Version:
  $Date: 2007-02-05 00:27:40 +0100 (Mo, 05 Feb 2007) $ $Id: DefaultActionInvocation.java 1328 2007-02-04 23:27:40Z tschneider22 $
Author:
  Rainer Hermanns, tmjee
See Also:
  `DefaultActionProxy`, Serialized Form

Field Summary
`protected Object` | `action`
`protected ActionEventListener` | `actionEventListener`
`protected boolean` | `executed`
`protected Map` | `extraContext`
`protected Iterator` | `interceptors`
`protected ActionContext` | `invocationContext`
`private static Log` | `LOG`
`protected ObjectFactory` | `objectFactory`
`protected List` | `preResultListeners`
`protected ActionProxy` | `proxy`
`protected boolean` | `pushAction`
`protected Result` | `result`
`protected String` | `resultCode`
`private static long` | `serialVersionUID`
`protected ValueStack` | `stack`
`protected UnknownHandler` | `unknownHandler`

Constructor Summary
`protected` | `DefaultActionInvocation(ObjectFactory objectFactory, UnknownHandler handler, ActionProxy proxy, Map extraContext)`
`protected` | `DefaultActionInvocation(ObjectFactory objectFactory, UnknownHandler handler, ActionProxy proxy, Map extraContext, boolean pushAction)`

Method Summary
`void` | `addPreResultListener(PreResultListener listener)` Register a com.opensymphony.xwork2.interceptor.PreResultListener to be notified after the Action is executed and before the Result is executed.
`protected void` | `createAction(Map contextMap)`
`protected Map` | `createContextMap()`
`Result` | `createResult()`
`private void` | `executeResult()` Uses getResult to get the final Result and executes it
`Object` | `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
`ValueStack` | `getStack()`
`private void` | `init()`
`String` | `invoke()` Invokes the next step in processing this ActionInvocation.
`protected String` | `invokeAction(Object action, ActionConfig actionConfig)`
`String` | `invokeActionOnly()` Invokes only the action (not interceptors or results).
`boolean` | `isExecuted()`
`void` | `setActionEventListener(ActionEventListener listener)` Sets the action event listener to respond to key action events
`void` | `setResultCode(String resultCode)` Sets the result code, possibly overriding the one returned by the action.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### serialVersionUID

    private static final long serialVersionUID

See Also:
  Constant Field Values

### LOG

    private static final Log LOG

### action

    protected Object action

### proxy

    protected ActionProxy proxy

### preResultListeners

    protected List preResultListeners

### extraContext

    protected Map extraContext

### invocationContext

    protected ActionContext invocationContext

### interceptors

    protected Iterator interceptors

### stack

    protected ValueStack stack

### result

    protected Result result

### resultCode

    protected String resultCode

### executed

    protected boolean executed

### pushAction

    protected boolean pushAction

### objectFactory

    protected ObjectFactory objectFactory

### actionEventListener

    protected ActionEventListener actionEventListener

### unknownHandler

    protected UnknownHandler unknownHandler

Constructor Detail

### DefaultActionInvocation

    protected DefaultActionInvocation(ObjectFactory objectFactory,
                                      UnknownHandler handler,
                                      ActionProxy proxy,
                                      Map extraContext)
                               throws Exception

Throws:
  `Exception`

### DefaultActionInvocation

    protected DefaultActionInvocation(ObjectFactory objectFactory,
                                      UnknownHandler handler,
                                      ActionProxy proxy,
                                      Map extraContext,
                                      boolean pushAction)
                               throws Exception

Throws:
  `Exception`

Method Detail

### setActionEventListener

    public void setActionEventListener(ActionEventListener listener)

  Description copied from interface: `ActionInvocation`
  Sets the action event listener to respond to key action events

  Specified by:
    `setActionEventListener` in interface `ActionInvocation`

### getAction

    public Object 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`

### setResultCode

    public void setResultCode(String resultCode)

  Description copied from interface: `ActionInvocation`
  Sets the result code, possibly overriding the one returned by the action.

  The "intended" purpose of this method is to allow PreResultListeners to override the result code returned by the Action.

  If this method is used before the Action executes, the Action's returned result code will override what was set. However the Action could (if specifically coded to do so) inspect the ActionInvocation to see that someone "upstream" (e.g. an Interceptor) had suggested a value as the result, and it could therefore return the same value itself.

  If this method is called between the Action execution and the Result execution, then the value set here will override the result code the action had returned. Creating an Interceptor that implements PreResultListener will give you this oportunity.

  If this method is called after the Result has been executed, it will have the effect of raising an exception.

  Specified by:
    `setResultCode` in interface `ActionInvocation`
  See Also:
    `ActionInvocation.isExecuted()`

### getStack

    public ValueStack getStack()

  Specified by:
    `getStack` in interface `ActionInvocation`
  Returns:
    the ValueStack associated with this ActionInvocation

### addPreResultListener

    public void addPreResultListener(PreResultListener listener)

  Register a com.opensymphony.xwork2.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:
    `ConfigurationException` - If no result can be found with the returned code
    `Exception`

### invokeActionOnly

    public String invokeActionOnly()
                            throws Exception

  Description copied from interface: `ActionInvocation`
  Invokes only the action (not interceptors or results). This is useful in rare situations where advanced usage with the interceptor/action/result workflow is being manipulated for certain functionality.

  Specified by:
    `invokeActionOnly` in interface `ActionInvocation`
  Throws:
    `Exception`

### createAction

    protected void createAction(Map contextMap)

### createContextMap

    protected Map createContextMap()

### executeResult

    private void executeResult()
                        throws Exception

  Uses getResult to get the final Result and executes it

  Throws:
    `ConfigurationException` - If not result can be found with the returned code
    `Exception`

### init

    private void init()
               throws Exception

  Throws:
    `Exception`

### invokeAction

    protected String invokeAction(Object action,
                                  ActionConfig actionConfig)
                           throws Exception

  Throws:
    `Exception`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.