package jetbrains.mps.samples.secretCompartmentLanguage.runtime.test;
/*Generated by MPS */
import jetbrains.mps.samples.secretCompartmentLanguage.runtime.StateMachineFactory;
import jetbrains.mps.samples.secretCompartmentLanguage.runtime.StateMachine;
import jetbrains.mps.samples.secretCompartmentLanguage.runtime.Event;
import jetbrains.mps.samples.secretCompartmentLanguage.runtime.State;
public final class HStateMachineFactory extends StateMachineFactory {
public HStateMachineFactory() {
}
@Override
public StateMachine getStateMachine() {
Event doorClosed = new Event("doorClosed", "D1CL");
Event drawOpened = new Event("drawOpened", "D2OP");
Event lightOn = new Event("lightOn", "L1ON");
Event doorOpened = new Event("doorOpened", "D1OP");
Event panelClosed = new Event("panelClosed", "PNCL");
State idle = new State("idle");
State activeState = new State("active");
State waitingForLightState = new State("waitingForLight");
State waitingForDrawState = new State("waitingForDraw");
State unlockedPanelState = new State("unlockedPanel");
StateMachine machine = new StateMachine(idle);
idle.addTransition(doorClosed, activeState);
activeState.addTransition(drawOpened, waitingForLightState);
activeState.addTransition(lightOn, waitingForDrawState);
waitingForLightState.addTransition(lightOn, unlockedPanelState);
waitingForDrawState.addTransition(drawOpened, unlockedPanelState);
unlockedPanelState.addTransition(panelClosed, idle);
machine.addResetEvents(doorOpened);
return machine;
}
}