Class OOCSIStateMachine
java.lang.Object
nl.tue.id.oocsi.client.behavior.state.OOCSIStateMachine
public class OOCSIStateMachine
extends java.lang.Object
A simple finite state machine for use with OOCSI
API and logic was inspired by the Processing StateMachine library: https://github.com/atduskgreg/Processing-FSM and
the AlphaBeta FSM library for Arduino: http://www.arduino.cc/playground/Code/FiniteStateMachine
- Author:
- matsfunk
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
OOCSIStateMachine.State
internal state representationclass
OOCSIStateMachine.Transition
internal transition representation -
Constructor Summary
Constructors Constructor Description OOCSIStateMachine()
-
Method Summary
Modifier and Type Method Description OOCSIStateMachine.State
addState(java.lang.String name, Handler enter, Handler execute, Handler exit)
add a new state to the state machine by specifying its name, and optional handlers for this new state's enter and exit events, and the execute handler that will be used while state is onvoid
addTransition(OOCSIStateMachine.State source, OOCSIStateMachine.State destination)
add a new transition between the source and the destination statevoid
execute()
triggers the execute handler of the current state of this state machinejava.lang.String
get()
get the current state of this state machine; might be nullOOCSIStateMachine.State
get(java.lang.String name)
get the state with the given nameboolean
isInState(java.lang.String state)
check if this state machine is currently in the given statevoid
set(java.lang.String newState)
set the state with the given name as the new current state; will trigger enter and exit handlers respectivelyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
OOCSIStateMachine
public OOCSIStateMachine()
-
-
Method Details
-
addState
public OOCSIStateMachine.State addState(java.lang.String name, Handler enter, Handler execute, Handler exit)add a new state to the state machine by specifying its name, and optional handlers for this new state's enter and exit events, and the execute handler that will be used while state is on- Parameters:
name
-enter
-execute
-exit
-- Returns:
- the new state
-
execute
public void execute()triggers the execute handler of the current state of this state machine -
isInState
public boolean isInState(java.lang.String state)check if this state machine is currently in the given state- Parameters:
state
-- Returns:
-
get
public java.lang.String get()get the current state of this state machine; might be null- Returns:
-
get
get the state with the given name- Parameters:
name
-- Returns:
-
set
public void set(java.lang.String newState)set the state with the given name as the new current state; will trigger enter and exit handlers respectively- Parameters:
newState
-
-
addTransition
add a new transition between the source and the destination state- Parameters:
source
-destination
-
-