summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2017-02-16 09:35:10 -0500
committerbculkin2442 <bjculkin@mix.wvu.edu>2017-02-16 09:35:10 -0500
commit039f7f71e049029ab71a6d6c60d2eed5f95e5795 (patch)
tree8d635a48670c7c24ffe1378ee70b367d1bd5953c /BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java
parent1b8704ee52801aca190f89c6839098a9b0776e7c (diff)
Update
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java b/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java
new file mode 100644
index 0000000..4ead829
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/esodata/Tape.java
@@ -0,0 +1,44 @@
+package bjc.utils.esodata;
+
+import java.util.ArrayList;
+
+public class Tape<T> {
+ private ArrayList<T> backing;
+ private int pos;
+
+ public Tape() {
+ backing = new ArrayList<>();
+ }
+
+ public T item() {
+ return backing.get(pos);
+ }
+
+ public boolean left() {
+ if(pos == 0) return false;
+
+ pos -= 1;
+ return true;
+ }
+
+ public boolean left(int amt) {
+ if((pos - amt) < 0) return false;
+
+ pos -= amt;
+ return true;
+ }
+
+ public boolean right() {
+ if(pos == (backing.size() - 1)) return false;
+
+ pos += 1;
+ return true;
+ }
+
+ public boolean right(int amt) {
+ if((pos + amt) >= (backing.size() - 1)) return false;
+
+ pos += amt;
+ return true;
+ }
+}