org.springframework.webflow.engine.support
Class TransitionExecutingFlowExecutionExceptionHandler

java.lang.Object
  extended by org.springframework.webflow.engine.support.TransitionExecutingFlowExecutionExceptionHandler
All Implemented Interfaces:
FlowExecutionExceptionHandler

public class TransitionExecutingFlowExecutionExceptionHandler
extends Object
implements FlowExecutionExceptionHandler

A flow execution exception handler that maps the occurrence of a specific type of exception to a transition to a new State.

The handled FlowExecutionException will be exposed in flash scope as FLOW_EXECUTION_EXCEPTION_ATTRIBUTE. The underlying root cause of that exception will be exposed in flash scope as ROOT_CAUSE_EXCEPTION_ATTRIBUTE.

Author:
Keith Donald

Field Summary
static String FLOW_EXECUTION_EXCEPTION_ATTRIBUTE
          The name of the attribute to expose a handled exception under in flash scope ("flowExecutionException").
static String ROOT_CAUSE_EXCEPTION_ATTRIBUTE
          The name of the attribute to expose a root cause of a handled exception under in flash scope ("rootCauseException").
 
Constructor Summary
TransitionExecutingFlowExecutionExceptionHandler()
           
 
Method Summary
 TransitionExecutingFlowExecutionExceptionHandler add(Class exceptionClass, String targetStateId)
          Adds an exception-to-target state mapping to this handler.
 TransitionExecutingFlowExecutionExceptionHandler add(Class exceptionClass, TargetStateResolver targetStateResolver)
          Adds a exception-to-target state resolver mapping to this handler.
 boolean canHandle(FlowExecutionException e)
          Can this handler handle the given exception?
 ActionList getActionList()
          Returns the list of actions to execute when this handler handles an exception.
 void handle(FlowExecutionException exception, RequestControlContext context)
          Handle the exception in the context of the current request.
 String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FLOW_EXECUTION_EXCEPTION_ATTRIBUTE

public static final String FLOW_EXECUTION_EXCEPTION_ATTRIBUTE
The name of the attribute to expose a handled exception under in flash scope ("flowExecutionException").

See Also:
Constant Field Values

ROOT_CAUSE_EXCEPTION_ATTRIBUTE

public static final String ROOT_CAUSE_EXCEPTION_ATTRIBUTE
The name of the attribute to expose a root cause of a handled exception under in flash scope ("rootCauseException").

See Also:
Constant Field Values
Constructor Detail

TransitionExecutingFlowExecutionExceptionHandler

public TransitionExecutingFlowExecutionExceptionHandler()
Method Detail

add

public TransitionExecutingFlowExecutionExceptionHandler add(Class exceptionClass,
                                                            String targetStateId)
Adds an exception-to-target state mapping to this handler.

Parameters:
exceptionClass - the type of exception to map
targetStateId - the id of the state to transition to if the specified type of exception is handled
Returns:
this handler, to allow for adding multiple mappings in a single statement

add

public TransitionExecutingFlowExecutionExceptionHandler add(Class exceptionClass,
                                                            TargetStateResolver targetStateResolver)
Adds a exception-to-target state resolver mapping to this handler.

Parameters:
exceptionClass - the type of exception to map
targetStateResolver - the resolver to calculate the state to transition to if the specified type of exception is handled
Returns:
this handler, to allow for adding multiple mappings in a single statement

getActionList

public ActionList getActionList()
Returns the list of actions to execute when this handler handles an exception. The returned list is mutable.


canHandle

public boolean canHandle(FlowExecutionException e)
Description copied from interface: FlowExecutionExceptionHandler
Can this handler handle the given exception?

Specified by:
canHandle in interface FlowExecutionExceptionHandler
Parameters:
e - the exception that occurred
Returns:
true if yes, false if no

handle

public void handle(FlowExecutionException exception,
                   RequestControlContext context)
Description copied from interface: FlowExecutionExceptionHandler
Handle the exception in the context of the current request. An implementation is expected to transition the flow to a state using RequestControlContext.execute(Transition).

Specified by:
handle in interface FlowExecutionExceptionHandler
Parameters:
exception - the exception that occurred
context - the execution control context for this request

toString

public String toString()
Overrides:
toString in class Object