com.opensymphony.xwork2.mock

## Class MockActionInvocation

- java.lang.Object
- - com.opensymphony.xwork2.mock.MockActionInvocation

- All Implemented Interfaces:
    ActionInvocation

      public class MockActionInvocation
      extends Object
      implements ActionInvocation

  Mock for an `ActionInvocation`.
  Version:
    $Id$
  Author:
    plightbo, Rainer Hermanns, tm_jee

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.opensymphony.xwork2.ActionInvocation

      `ActionInvocation.LegacyAdapter`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MockActionInvocation()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addPreResultListener(PreResultListener listener)`
    `Object` | `getAction()` Get the Action associated with this ActionInvocation.
    `ActionEventListener` | `getActionEventListener()`
    `ActionContext` | `getInvocationContext()` Gets the ActionContext associated with this ActionInvocation.
    `ActionProxy` | `getProxy()` Get the ActionProxy holding this ActionInvocation.
    `Result` | `getResult()` If the ActionInvocation has been executed before and the Result is an instance of `ActionChainResult`, this method will walk down the chain of `ActionChainResult`s until it finds a non-chain result, which will be returned.
    `String` | `getResultCode()` Gets the result code returned from this ActionInvocation.
    `ValueStack` | `getStack()` Gets the ValueStack associated with this ActionInvocation.
    `void` | `init(ActionProxy proxy)`
    `String` | `invoke()` Invokes the next step in processing this ActionInvocation.
    `String` | `invokeActionOnly()` Invokes only the Action (not Interceptors or Results).
    `boolean` | `isExecuted()` Gets whether this ActionInvocation has executed before.
    `void` | `setAction(Object action)`
    `void` | `setActionEventListener(ActionEventListener listener)`
    `void` | `setInvocationContext(ActionContext invocationContext)`
    `void` | `setProxy(ActionProxy proxy)`
    `void` | `setResult(Result result)`
    `void` | `setResultCode(String resultCode)` Sets the result code, possibly overriding the one returned by the action.
    `void` | `setStack(ValueStack stack)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.opensymphony.xwork2.ActionInvocation

      `adapt, addPreResultListener, init, setActionEventListener`

- - ### Constructor Detail

    - #### MockActionInvocation

          public MockActionInvocation()

  - ### Method Detail

    - #### getAction

          public Object getAction()

      Description copied from interface: `ActionInvocation`
      Get the Action associated with this ActionInvocation.
      Specified by:
        `getAction` in interface `ActionInvocation`
      Returns:
        the Action

    - #### setAction

          public void setAction(Object action)

    - #### 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`
      Returns:
        the ActionContext.

    - #### setInvocationContext

          public void setInvocationContext(ActionContext invocationContext)

    - #### getProxy

          public ActionProxy getProxy()

      Description copied from interface: `ActionInvocation`
      Get the ActionProxy holding this ActionInvocation.
      Specified by:
        `getProxy` in interface `ActionInvocation`
      Returns:
        the ActionProxy.

    - #### setProxy

          public void setProxy(ActionProxy proxy)

    - #### getResult

          public Result getResult()

      Description copied from interface: `ActionInvocation`
      If the ActionInvocation has been executed before and the Result is an instance of `ActionChainResult`, this method will walk down the chain of `ActionChainResult`s until it finds a non-chain result, which will be returned. If the ActionInvocation'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:
        the result.

    - #### setResult

          public void setResult(Result result)

    - #### getResultCode

          public String getResultCode()

      Description copied from interface: `ActionInvocation`
      Gets the result code returned from this ActionInvocation.
      Specified by:
        `getResultCode` in interface `ActionInvocation`
      Returns:
        the result code

    - #### 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 opportunity.

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

      Specified by:
        `setResultCode` in interface `ActionInvocation`
      Parameters:
        `resultCode` - the result code.
      See Also:
        `ActionInvocation.isExecuted()`

    - #### getStack

          public ValueStack getStack()

      Description copied from interface: `ActionInvocation`
      Gets the ValueStack associated with this ActionInvocation.
      Specified by:
        `getStack` in interface `ActionInvocation`
      Returns:
        the ValueStack

    - #### setStack

          public void setStack(ValueStack stack)

    - #### isExecuted

          public boolean isExecuted()

      Description copied from interface: `ActionInvocation`
      Gets whether this ActionInvocation has executed before. This will be set after the Action and the Result have executed.
      Specified by:
        `isExecuted` in interface `ActionInvocation`
      Returns:
        `true` if this ActionInvocation has executed before.

    - #### addPreResultListener

          public void addPreResultListener(PreResultListener listener)

    - #### 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`
      Returns:
        the return code.
      Throws:
        `Exception` - can be thrown.

    - #### 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`
      Returns:
        the return code.
      Throws:
        `Exception` - can be thrown.

    - #### setActionEventListener

          public void setActionEventListener(ActionEventListener listener)

    - #### getActionEventListener

          public ActionEventListener getActionEventListener()

    - #### init

          public void init(ActionProxy proxy)

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.