From 184f8a36e1d4535282fed1a8f84e82cbab4de2ad Mon Sep 17 00:00:00 2001 From: baiakhmet <42671496+baiakhmet@users.noreply.github.com> Date: Mon, 27 Aug 2018 15:06:20 +0600 Subject: [PATCH] Add files via upload --- .../java/kz/edu/nu/cs/exercise/State1.java | 7 ++ .../java/kz/edu/nu/cs/exercise/State2.java | 7 ++ .../java/kz/edu/nu/cs/exercise/State3.java | 7 ++ .../kz/edu/nu/cs/exercise/StateContext.java | 89 +++++++++++-------- 4 files changed, 72 insertions(+), 38 deletions(-) create mode 100644 src/main/java/kz/edu/nu/cs/exercise/State1.java create mode 100644 src/main/java/kz/edu/nu/cs/exercise/State2.java create mode 100644 src/main/java/kz/edu/nu/cs/exercise/State3.java 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..78ab84d --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State1.java @@ -0,0 +1,7 @@ +package kz.edu.nu.cs.exercise; + +public class State1 extends State{ + + public State1(StateContext sc) {} + +} 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..7a3a69b --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State2.java @@ -0,0 +1,7 @@ +package kz.edu.nu.cs.exercise; + +public class State2 extends State{ + + public State2(StateContext sc) {} + +} 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..973c2ae --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State3.java @@ -0,0 +1,7 @@ +package kz.edu.nu.cs.exercise; + +public class State3 extends State{ + + public State3(StateContext sc) {} + +} 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..33502ad 100644 --- a/src/main/java/kz/edu/nu/cs/exercise/StateContext.java +++ b/src/main/java/kz/edu/nu/cs/exercise/StateContext.java @@ -1,38 +1,51 @@ -package kz.edu.nu.cs.exercise; - -public class StateContext { - final State state1 = new State1(this); - final State state2 = new State2(this); - final State state3 = new State3(this); - - private State currentState; - - public StateContext() { - this.currentState = state1; - } - - public void actionA() { - // complete this method by - // delegation to the current state - } - - public void actionB() { - // complete this method - // delegate to the current state - } - - public boolean inAcceptState() { - // complete this method and return correct value - // delegate to the current state - return false; - } - - public State getCurrentState() { - return currentState; - } - - public void setCurrentState(State currentState) { - this.currentState = currentState; - } - -} +package kz.edu.nu.cs.exercise; + +public class StateContext { + final State state1 = new State1(this); + final State state2 = new State2(this); + final State state3 = new State3(this); + + private State currentState; + + public StateContext() { + this.currentState = state1; + } + + public void actionA() { + if(currentState.equals(state1)){ + currentState = state2; + }else if(currentState.equals(state2)){ + currentState = state3; + }else{ + currentState = state3; + } + } + + public void actionB() { + if(currentState.equals(state1)){ + currentState = state1; + }else if(currentState.equals(state2)){ + currentState = state1; + }else{ + currentState = state2; + } + } + + public boolean inAcceptState() { + if(currentState.equals(state3)){ + return true; + }else { + return false; + } + + } + + public State getCurrentState() { + return currentState; + } + + public void setCurrentState(State currentState) { + this.currentState = currentState; + } + +}