summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/esodata/DoubleTape.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-07 13:03:39 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-06-07 13:03:39 -0300
commitca2a5c012267c500d9f0fd883c98904d125a64f0 (patch)
treedad96199dce1967d6a60ad8419364099eda28348 /base/src/main/java/bjc/utils/esodata/DoubleTape.java
parent74ba804b29109918f4446cd54092d90c7cf6510e (diff)
Refactor tapes
DoubleSided is now its own interface, and the unnecessary tape classes have been removed
Diffstat (limited to 'base/src/main/java/bjc/utils/esodata/DoubleTape.java')
-rw-r--r--base/src/main/java/bjc/utils/esodata/DoubleTape.java19
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