© 2005 BEA Systems, Inc.

com.beasys.commerce.ebusiness.order
Class StateMachine

java.lang.Object
  extended bycom.beasys.commerce.ebusiness.order.StateMachine
All Implemented Interfaces:
Serializable

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.

See Also:
Serialized Form

Constructor Summary
StateMachine(String domDocFile)
          Constructor that takes as a parameter the name of an XML specification for the state machine.
 
Method Summary
 String getFirstState()
          Gets the first state an order can be set to, which should correspond to a SUBMITTED state.
 String getNextStateName(String currStateName, String event)
          Gets the state that results from sending a specified event to a specified state.
 String[] getValidEvents(String stateName)
          Gets the names of the events associated with transitions that lead from a specified state
 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
static void main(String[] argv)
          A testing 'main' that uses the classes\orderstatus.xml and show a tree of the possible transitions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StateMachine

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

Throws:
Exception
Method Detail

getFirstState

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.
Throws:
StateTransitionException

getNextStateName

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
Throws:
StateTransitionException

getValidEvents

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

Returns:
an array of String, one per reachable events.

handleEvent

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

Returns:
the new state the object has moved to.
Throws:
StateTransitionException

main

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


© 2005 BEA Systems, Inc.

Copyright © 2005 BEA Systems, Inc. All Rights Reserved