From ca2a5c012267c500d9f0fd883c98904d125a64f0 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Thu, 7 Jun 2018 13:03:39 -0300 Subject: Refactor tapes DoubleSided is now its own interface, and the unnecessary tape classes have been removed --- base/src/main/java/bjc/utils/esodata/DoubleTape.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'base/src/main/java/bjc/utils/esodata/DoubleTape.java') diff --git a/base/src/main/java/bjc/utils/esodata/DoubleTape.java b/base/src/main/java/bjc/utils/esodata/DoubleTape.java index bfc58a4..520ab5e 100644 --- a/base/src/main/java/bjc/utils/esodata/DoubleTape.java +++ b/base/src/main/java/bjc/utils/esodata/DoubleTape.java @@ -24,7 +24,9 @@ package bjc.utils.esodata; * * @author bjculkin */ -public class DoubleTape implements Tape { +public class DoubleTape implements Tape, DoubleSided { + private boolean frontActive; + /* The front-side of the tape. */ private Tape front; /* The back-side of the tape. */ @@ -45,6 +47,8 @@ public class DoubleTape implements Tape { public DoubleTape(final boolean autoExtnd) { front = new SingleTape<>(autoExtnd); back = new SingleTape<>(autoExtnd); + + frontActive = true; } @Override @@ -130,23 +134,20 @@ public class DoubleTape implements Tape { return succ; } - /** - * Flips the tape. - * - * The active side becomes inactive, and the inactive side becomes - * active. - */ + @Override public void flip() { final Tape tmp = front; front = back; back = tmp; + + frontActive = !frontActive; } @Override - public boolean isDoubleSided() { - return true; + public boolean currentSide() { + return frontActive; } @Override -- cgit v1.2.3