- package framework.scenario;
-
- import java.util.Collection;
- import java.util.Hashtable;
- import java.util.Iterator;
-
- public class FSM {
- private State initialState = null;
- protected State currentState = null;
- private Hashtable<String, State> states = new Hashtable<String, State>();
-
- public FSM(State initialState, Hashtable<String, State> states) {
- this.initialState = initialState;
- this.states = states;
- currentState = initialState;
- Collection<State> allStates = states.values();
- Iterator<State> it = allStates.iterator();
- while (it.hasNext()) {
- State s = it.next();
- s.setOwner(this);
- }
- }
-
- public void addState(String stateName, State s) {
- states.put(stateName, s);
- s.setOwner(this);
- }
-
- public boolean trans(Event e) {
- currentState = currentState.getSuccessor(e);
- if (currentState == null) return false;
- return true;
- }
-
- public State getCurrentState() {
- return currentState;
- }
- }