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

## com.beasys.commerce.foundation
Class StateMachine

    java.lang.Object
      com.beasys.commerce.foundation.StateMachine

All Implemented Interfaces:
  BusinessSmartComponent, Serializable, Workflow

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

### currentState

    protected State currentState

### initialState

    protected State initialState

### states

    protected TreeSet states

### TRANSITION_KEY_TOKEN

    protected String TRANSITION_KEY_TOKEN

### transitions

    protected TreeMap transitions

Constructor Detail

### StateMachine

    public StateMachine()

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

Method Detail

### addTransition

    protected void addTransition(Transition t)

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

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

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

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

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

Copyright © 2005 BEA Systems, Inc. All Rights Reserved