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..4181972 --- /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 StateContext sc; + protected boolean accept = false; + + //constructor + public State1(StateContext sc) { + this.sc = sc; + } + + public void actionA() { + this.sc.setCurrentState(this.sc.getState2()); + } + + public void actionB() { + this.sc.setCurrentState(this.sc.getState1()); + } + + public boolean isAccept() { + return this.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..eb4f084 --- /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 StateContext sc; + protected boolean accept = false; + + //constructor + public State2(StateContext sc) { + this.sc = sc; + } + + public void actionA() { + this.sc.setCurrentState(this.sc.getState3()); + } + + public void actionB() { + this.sc.setCurrentState(this.sc.getState1()); + } + + public boolean isAccept() { + return this.accept; + } +} 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..2fecb43 --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State3.java @@ -0,0 +1,22 @@ +package kz.edu.nu.cs.exercise; + +public class State3 extends State{ + protected StateContext sc; + protected boolean accept = true; + //constructor + public State3 (StateContext sc) { + this.sc = sc; + } + + public void actionA() { + this.sc.setCurrentState(this.sc.getState3()); + } + + public void actionB() { + this.sc.setCurrentState(this.sc.getState2()); + } + + public boolean isAccept() { + return this.accept; + } +} diff --git a/src/main/java/kz/edu/nu/cs/exercise/StateContext.java b/src/main/java/kz/edu/nu/cs/exercise/StateContext.java index 3b154c4..01309d6 100644 --- a/src/main/java/kz/edu/nu/cs/exercise/StateContext.java +++ b/src/main/java/kz/edu/nu/cs/exercise/StateContext.java @@ -12,19 +12,16 @@ public StateContext() { } public void actionA() { - // complete this method by - // delegation to the current state + this.currentState.actionA() } public void actionB() { - // complete this method - // delegate to the current state + this.currentState.actionB() + } public boolean inAcceptState() { - // complete this method and return correct value - // delegate to the current state - return false; + this.currentState.isAccept(); } public State getCurrentState() { @@ -35,4 +32,14 @@ public void setCurrentState(State currentState) { this.currentState = currentState; } + public State getState1(){ + return this.state1; + } + public State getState2(){ + return this.state2; + } + public State getState3(){ + return this.state3; + } + }