diff --git a/src/main/java/ru/bvn13/fsm/FSM.java b/src/main/java/ru/bvn13/fsm/FSM.java index 964d28c..a220ddf 100644 --- a/src/main/java/ru/bvn13/fsm/FSM.java +++ b/src/main/java/ru/bvn13/fsm/FSM.java @@ -80,6 +80,17 @@ public class FSM { nextState(nextState); } + public void prev() throws FSMException { + if (done) { + return; + } + currentState.afterEvent(); + if (getPreviousState() == null) { + return; + } + nextState(getPreviousState()); + } + private void nextState(State state) { state.beforeEvent(); previousState = currentState;