com.beasys.commerce.foundation
Class StateMachine

java.lang.Object
  extended by com.beasys.commerce.foundation.StateMachine
All Implemented Interfaces
BusinessSmartComponent, Workflow, Serializable
Direct Known Subclasses:
PaymentWorkflow

public class StateMachine
extends Object
implements Workflow

This is the reference implemenation of a Workflow object. It provides a simple implemenation based on a set of states and transitions.

See Also
Workflow, Serialized Form

Field Summary
protected  State currentState
           
protected  State initialState
           
protected  TreeSet states
           
protected  String TRANSITION_KEY_TOKEN
           
protected  TreeMap transitions
           
 
Constructor Summary
StateMachine()
          Use WorkflowHome.create("com.beasys.commerce.foundation.StateMachine") to instantiate the workflow.
 
Method Summary
protected  void addTransition(Transition t)
           
 String doTransition(String transitionName)
          Given the name of the transition, perform the transition and return the new state.
 WorkflowContext getContext()
          Get the context of the Workflow.
 String getCurrentStateName()
          Get the name of the current state
 String getInitialStateName()
          Get the name of the initial state
 String[] getOutgoingTransitions(String state)
          Given the name of the state, return all transitions starting from that state
 String[] getStateNames()
          Get all State names in an array of Strings.
 String[] getTransitionNames()
          Get all transition names in an array of Strings.
 String lookAheadTransition(String transition)
          Given the name of the transition, look ahead the transition and return the predicted new state.
 void reset()
          Reset the current workflow state to the initial state
 void setContext(WorkflowContext workflowContext)
          Set the new context for the underlying workflow engine.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRANSITION_KEY_TOKEN

protected String TRANSITION_KEY_TOKEN

currentState

protected State currentState

initialState

protected State initialState

transitions

protected TreeMap transitions

states

protected TreeSet states
Constructor Detail

StateMachine

public StateMachine()
Use WorkflowHome.create("com.beasys.commerce.foundation.StateMachine") to instantiate the workflow.

Method Detail

doTransition

public String doTransition(String transitionName)
                    throws IllegalWorkflowTransitionException
Given the name of the transition, perform the transition and return the new state. If transition is invalid for the current state of the state machine, throw IllegalWorkflowTransitionException

Specified by:
doTransition in interface Workflow
Parameters
transition - the name of the transition to be performed
Returns
new state.
Throws
IllegalWorkflowTransitionException - if the transition is invalid

getContext

public WorkflowContext getContext()
Get the context of the Workflow. This method should be used only by the classes that implement the Workflow interface.

Specified by:
getContext in interface Workflow
Returns
WorkflowContext

getCurrentStateName

public String getCurrentStateName()
Get the name of the current state

Specified by:
getCurrentStateName in interface Workflow
Returns
current state name

getInitialStateName

public String getInitialStateName()
Get the name of the initial state

Specified by:
getInitialStateName in interface Workflow
Returns
initial state name

getStateNames

public String[] getStateNames()
Get all State names in an array of Strings.

Specified by:
getStateNames in interface Workflow
Returns
String[] an array of Strings

getTransitionNames

public String[] getTransitionNames()
Get all transition names in an array of Strings.

Specified by:
getTransitionNames in interface Workflow
Returns
String[] an array of Strings

lookAheadTransition

public String lookAheadTransition(String transition)
                           throws IllegalWorkflowTransitionException
Given the name of the transition, look ahead the transition and return the predicted new state. If transition is invalid for the current state of the state machine, throw IllegalWorkflowTransitionException.

Specified by:
lookAheadTransition in interface Workflow
Parameters
transition - the name of the transition to be performed
Returns
predicted new state.
Throws
IllegalWorkflowTransitionException - if the transition is invalid

getOutgoingTransitions

public String[] getOutgoingTransitions(String state)
                                throws IllegalWorkflowTransitionException
Given the name of the state, return all transitions starting from that state

Specified by:
getOutgoingTransitions in interface Workflow
Parameters
state - the name of the state
Returns
a String[] of transition names.
Throws
IllegalWorkflowTransitionException - if the transition is invalid

reset

public void reset()
Reset the current workflow state to the initial state

Specified by:
reset in interface Workflow

setContext

public void setContext(WorkflowContext workflowContext)
Set the new context for the underlying workflow engine. This method should be used only by the classes that implement the Workflow interface.

Specified by:
setContext in interface Workflow
Parameters
WorkflowContext - the new context for the underlying workflow engine.

addTransition

protected void addTransition(Transition t)


Copyright © 2006 BEA Systems, Inc. All Rights Reserved