StateMachine Class

com.beasys.commerce.ebusiness.order
StateMachine Class

public class StateMachine

    extends Object
    implements Serializable

A class for implementing finite state machines. The state machine is created by parsing an XML document, classes\orderstatus.xml.
The state machine helps get valid transitions based on a current transition, so that an Order Status can be moved to a valid new state.


Hierarchy
Object
  StateMachine
All Implemented Interfaces

Serializable

Constructor Summary

StateMachine(String domDocFile)

Constructor that takes as a parameter the name of an XML specification for the state machine.
 

Method Summary

public String
getFirstState()
Gets the first state an order can be set to, which should correspond to a SUBMITTED state.
public String
getNextStateName(String currStateName, String event)
Gets the state that results from sending a specified event to a specified state.
public String[]
getValidEvents(String stateName)
Gets the names of the events associated with transitions that lead from a specified state
public String
handleEvent(Object targetObject, String currStateName, String event)
Handles an event for a given object, in particular invokes the onExitMethod, onEntryMethod, and doMethod if they exists
public static void
main(String[] argv)
A testing 'main' that uses the classes\orderstatus.xml and show a tree of the possible transitions
 
Methods from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
   

Constructor Detail

StateMachine

public StateMachine(String domDocFile)
Constructor that takes as a parameter the name of an XML specification for the state machine.
 

Method Detail

getFirstState() Method

public String getFirstState()
throws StateTransitionException
Gets the first state an order can be set to, which should correspond to a SUBMITTED state.

Returns

the 'first' state, the source of transitions.

Exceptions

StateTransitionException

getNextStateName(String, String) Method

public String getNextStateName(String currStateName, 
                               String event)
throws StateTransitionException
Gets the state that results from sending a specified event to a specified state.

Parameters

currStateName
The name of the current state
event
The event to be sent to the current state

Returns

The name of the new state

Exceptions

StateTransitionException

getValidEvents(String) Method

public String[] getValidEvents(String stateName)
Gets the names of the events associated with transitions that lead from a specified state

Parameters

stateName
the name of a state in the machine

Returns

an array of String, one per reachable events.

handleEvent(Object, String, String) Method

public String handleEvent(Object targetObject, 
                          String currStateName, 
                          String event)
throws StateTransitionException
Handles an event for a given object, in particular invokes the onExitMethod, onEntryMethod, and doMethod if they exists

Parameters

targetObject
the target of the handling
currStateName
based on the current state, decides on which action to take
event
based on the event being handled, decides on which action to take

Returns

the new state the object has moved to.

Exceptions

StateTransitionException

main(String[]) Method

public static void main(String[] argv)
A testing 'main' that uses the classes\orderstatus.xml and show a tree of the possible transitions