From 27955d04989bf819c60632999ceaef4e985da6f7 Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Tue, 17 Jul 2018 18:22:09 -0300 Subject: Update tape interface This adds a seekTo method, among other things --- base/src/main/java/bjc/utils/esodata/SingleTape.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'base/src/main/java/bjc/utils/esodata/SingleTape.java') 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 implements Tape { 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; -- cgit v1.2.3