summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/esodata/SingleTape.java
diff options
context:
space:
mode:
authorBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-07-17 18:22:09 -0300
committerBenjamin J. Culkin <bjculkin@mix.wvu.edu>2018-07-17 18:22:09 -0300
commit27955d04989bf819c60632999ceaef4e985da6f7 (patch)
tree4884b257da360b65d5c409799e40ce062c2dc7bd /base/src/main/java/bjc/utils/esodata/SingleTape.java
parentcb9ce4c0c6fd68b2aa7664eb7c143e186f3033f6 (diff)
Update tape interface
This adds a seekTo method, among other things
Diffstat (limited to 'base/src/main/java/bjc/utils/esodata/SingleTape.java')
-rw-r--r--base/src/main/java/bjc/utils/esodata/SingleTape.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/base/src/main/java/bjc/utils/esodata/SingleTape.java b/base/src/main/java/bjc/utils/esodata/SingleTape.java
index 636c04c..d57bc7f 100644
--- a/base/src/main/java/bjc/utils/esodata/SingleTape.java
+++ b/base/src/main/java/bjc/utils/esodata/SingleTape.java
@@ -163,6 +163,22 @@ public class SingleTape<T> implements Tape<T> {
return true;
}
+ public boolean seekTo(int tgtPos) {
+ if(tgtPos < 0)
+ return false;
+
+ if(tgtPos >= backing.size() - 1)
+ if(autoExtend)
+ while(tgtPos >= backing.size() - 1)
+ backing.add(null);
+ else
+ return false;
+
+ pos = tgtPos;
+
+ return true;
+ }
+
@Override
public int hashCode() {
final int prime = 31;