diff --git a/src/main/java/kz/edu/nu/cs/exercise/State1.java b/src/main/java/kz/edu/nu/cs/exercise/State1.java new file mode 100644 index 0000000..0082064 --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State1.java @@ -0,0 +1,23 @@ +package kz.edu.nu.cs.exercise; + +public class State1 extends State { + + protected boolean accept = false; + + public State1(StateContext sc) { + this.sc = sc; + } + + public void actionA() { + sc.setCurrentState(sc.state2); + } + + public void actionB() { + sc.setCurrentState(sc.getCurrentState()); + } + + public boolean isAccept() { + return accept; + } + +} diff --git a/src/main/java/kz/edu/nu/cs/exercise/State2.java b/src/main/java/kz/edu/nu/cs/exercise/State2.java new file mode 100644 index 0000000..f147a3f --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State2.java @@ -0,0 +1,23 @@ +package kz.edu.nu.cs.exercise; + +public class State2 extends State{ + + protected boolean accept = false; + + public State2(StateContext sc) { + this.sc = sc; + } + + public void actionA() { + sc.setCurrentState(sc.state3); + } + + public void actionB() { + sc.setCurrentState(sc.state1); + } + + public boolean isAccept() { + return accept; + } + +} \ No newline at end of file diff --git a/src/main/java/kz/edu/nu/cs/exercise/State3.java b/src/main/java/kz/edu/nu/cs/exercise/State3.java new file mode 100644 index 0000000..b5250c8 --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State3.java @@ -0,0 +1,23 @@ +package kz.edu.nu.cs.exercise; + +public class State3 extends State { + + protected boolean accept = true; + + public State3(StateContext sc) { + this.sc = sc; + } + + public void actionA() { + sc.setCurrentState(sc.getCurrentState()); + } + + public void actionB() { + sc.setCurrentState(sc.state2); + } + + public boolean isAccept() { + return accept; + } + +} \ No newline at end of file diff --git a/src/main/java/kz/edu/nu/cs/exercise/StateContext.java b/src/main/java/kz/edu/nu/cs/exercise/StateContext.java old mode 100644 new mode 100755 index 3b154c4..8120808 --- a/src/main/java/kz/edu/nu/cs/exercise/StateContext.java +++ b/src/main/java/kz/edu/nu/cs/exercise/StateContext.java @@ -12,11 +12,13 @@ public StateContext() { } public void actionA() { + this.currentState.actionA(); // complete this method by // delegation to the current state } public void actionB() { + this.currentState.actionB(); // complete this method // delegate to the current state } @@ -24,7 +26,7 @@ public void actionB() { public boolean inAcceptState() { // complete this method and return correct value // delegate to the current state - return false; + return this.currentState.isAccept(); } public State getCurrentState() { @@ -35,4 +37,5 @@ public void setCurrentState(State currentState) { this.currentState = currentState; } -} + +} \ No newline at end of file