Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2003 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.beasys.commerce.ebusiness.order
Class StateMachine

    java.lang.Object
      |
      +--com.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.

Parameters:
  `domDocFile` - The name of the XML file that has the state machine's specification, residing in the classpath
Throws:
  `Exception`

Method Detail

### 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.
    `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.

### 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.
    `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

Overview | Package | Class | Tree | Deprecated | Index | Help
| © 2003 BEA Systems, Inc.
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003 BEA Systems, Inc. All Rights Reserved