From 8bb6e0f69ddb91a04e827f0de40e73739d32eaaa Mon Sep 17 00:00:00 2001 From: Dastan Date: Fri, 24 Aug 2018 20:32:16 -0300 Subject: [PATCH] first --- .../java/kz/edu/nu/cs/exercise/State1.java | 18 +++++++++++++++++ .../java/kz/edu/nu/cs/exercise/State2.java | 19 ++++++++++++++++++ .../java/kz/edu/nu/cs/exercise/State3.java | 20 +++++++++++++++++++ .../kz/edu/nu/cs/exercise/StateContext.java | 4 +++- 4 files changed, 60 insertions(+), 1 deletion(-) 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..0ec1769 --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State1.java @@ -0,0 +1,18 @@ +package kz.edu.nu.cs.exercise; + +public class State1 extends State{ + + public State1(StateContext sc) { + this.sc = sc; + } + + @Override + public void actionA() { + sc.setCurrentState(sc.state2); + } + + @Override + public void actionB() { + sc.setCurrentState(sc.state1); + } +} 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..efec3e3 --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State2.java @@ -0,0 +1,19 @@ +package kz.edu.nu.cs.exercise; + +public class State2 extends State { + + public State2(StateContext sc) { + this.sc = sc; + } + + @Override + public void actionA() { + sc.setCurrentState(sc.state3); + } + + @Override + public void actionB() { + sc.setCurrentState(sc.state1); + } + +} 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..0bc1561 --- /dev/null +++ b/src/main/java/kz/edu/nu/cs/exercise/State3.java @@ -0,0 +1,20 @@ +package kz.edu.nu.cs.exercise; + +public class State3 extends State { + + public State3(StateContext sc) { + this.sc = sc; + this.accept = true; + } + + @Override + public void actionA() { + sc.setCurrentState(sc.state3); + } + + @Override + public void actionB() { + sc.setCurrentState(sc.state2); + } + +} 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..de8c995 100644 --- a/src/main/java/kz/edu/nu/cs/exercise/StateContext.java +++ b/src/main/java/kz/edu/nu/cs/exercise/StateContext.java @@ -14,17 +14,19 @@ public StateContext() { public void actionA() { // complete this method by // delegation to the current state + currentState.actionA(); } public void actionB() { // complete this method // delegate to the current state + currentState.actionB(); } public boolean inAcceptState() { // complete this method and return correct value // delegate to the current state - return false; + return currentState.isAccept(); } public State getCurrentState() {