public class

FSMDescription

extends Object
java.lang.Object
   ↳ uk.ac.imperial.presage2.util.fsm.FSMDescription

Class Overview

A description of an FSM. This is the data structure we use to traverse the state machine.

Summary

Public Constructors
FSMDescription()
Public Methods
FSMDescription addState(Enum<?> name)
FSMDescription addState(Enum<?> name, StateType type)
FSMDescription addState(String name)
Add a state of ACTIVE to the FSM.
FSMDescription addState(String name, StateType type)
Add a state to the FSM.
FSMDescription addTransition(Enum<?> name, TransitionCondition condition, Enum<?> start, Enum<?> end, Action action)
FSMDescription addTransition(String name, TransitionCondition condition, String start, String end, Action action)
Add a transition with TransitionCondition condition between states start and end to the FSM which executes the Action action.
synchronized FSMDescription build()
Builds the FSM, making this description immutable.
FSMDescription setTransitionAction(Enum<?> transitionName, Action action)
FSMDescription setTransitionAction(String transitionName, Action action)
Set the Action associated with transitionName.
FSMDescription setTransitionCondition(Enum<?> transitionName, TransitionCondition condition)
FSMDescription setTransitionCondition(String transitionName, TransitionCondition condition)
Set the TransitionCondition associated with transitionName.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public FSMDescription ()

Public Methods

public FSMDescription addState (Enum<?> name)

Throws
FSMException

public FSMDescription addState (Enum<?> name, StateType type)

Throws
FSMException

public FSMDescription addState (String name)

Add a state of ACTIVE to the FSM.

Returns
  • this
Throws
FSMException

public FSMDescription addState (String name, StateType type)

Add a state to the FSM.

Returns
  • this
Throws
FSMException

public FSMDescription addTransition (Enum<?> name, TransitionCondition condition, Enum<?> start, Enum<?> end, Action action)

Throws
FSMException

public FSMDescription addTransition (String name, TransitionCondition condition, String start, String end, Action action)

Add a transition with TransitionCondition condition between states start and end to the FSM which executes the Action action.

Parameters
name Name of the transition.
condition TransitionCondition on when this transition is taken. May be null in which case ALWAYS will be used unless it is changed by setTransitionCondition(String, TransitionCondition)
start Name of the start node (must exist already in the FSMDescription)
end Name of the end node (must exist already in the FSMDescription)
action Action to perform when this tranition is taken. May be null in which case a noop will be used unless it is set by setTransitionAction(String, Action)
Returns
  • this
Throws
FSMException

public synchronized FSMDescription build ()

Builds the FSM, making this description immutable. TODO The point of this function needs to be better defined. It should create a copy of the description into an immutable container separate from this instance.

Returns
  • this
Throws
FSMException

public FSMDescription setTransitionAction (Enum<?> transitionName, Action action)

Throws
FSMException

public FSMDescription setTransitionAction (String transitionName, Action action)

Set the Action associated with transitionName. Will overwrite the existing action for this transition.@return

Throws
FSMException

public FSMDescription setTransitionCondition (Enum<?> transitionName, TransitionCondition condition)

Throws
FSMException

public FSMDescription setTransitionCondition (String transitionName, TransitionCondition condition)

Set the TransitionCondition associated with transitionName. Will overwrite the existing condition for this transition.

Returns
  • this
Throws
FSMException