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
-
StateMachine(
String domDocFile)
- Constructor that takes as a parameter the name of an
XML specification for the state machine.
|
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 |
StateMachine
public StateMachine(String
domDocFile)
- Constructor that takes as a parameter the name of an
XML specification for the state machine.
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