diff options
Diffstat (limited to 'base/src/main/java/bjc/utils/esodata/DoubleTape.java')
| -rw-r--r-- | base/src/main/java/bjc/utils/esodata/DoubleTape.java | 19 |
1 files changed, 10 insertions, 9 deletions
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<T> implements Tape<T> { +public class DoubleTape<T> implements Tape<T>, DoubleSided { + private boolean frontActive; + /* The front-side of the tape. */ private Tape<T> front; /* The back-side of the tape. */ @@ -45,6 +47,8 @@ public class DoubleTape<T> implements Tape<T> { public DoubleTape(final boolean autoExtnd) { front = new SingleTape<>(autoExtnd); back = new SingleTape<>(autoExtnd); + + frontActive = true; } @Override @@ -130,23 +134,20 @@ public class DoubleTape<T> implements Tape<T> { return succ; } - /** - * Flips the tape. - * - * The active side becomes inactive, and the inactive side becomes - * active. - */ + @Override public void flip() { final Tape<T> tmp = front; front = back; back = tmp; + + frontActive = !frontActive; } @Override - public boolean isDoubleSided() { - return true; + public boolean currentSide() { + return frontActive; } @Override |
