summaryrefslogtreecommitdiff
path: root/src/main/java/bjc/esodata/TapeView.java
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2020-12-01 20:20:27 -0500
committerBen Culkin <scorpress@gmail.com>2020-12-01 20:20:27 -0500
commit097a33bc2ecaa64a664550ddd62ccd8de47c51d0 (patch)
treedf9680c1f33fddf4dcbe538593ee73703afb91ce /src/main/java/bjc/esodata/TapeView.java
parentc85db1bef75e5c9b7287ab7fdb6e1380d577c674 (diff)
An assortment of changes
Diffstat (limited to 'src/main/java/bjc/esodata/TapeView.java')
-rw-r--r--src/main/java/bjc/esodata/TapeView.java102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/main/java/bjc/esodata/TapeView.java b/src/main/java/bjc/esodata/TapeView.java
new file mode 100644
index 0000000..bfc33a9
--- /dev/null
+++ b/src/main/java/bjc/esodata/TapeView.java
@@ -0,0 +1,102 @@
+package bjc.esodata;
+
+/**
+ * An interface which allows you to view a given type as a tape.
+ *
+ * @author Ben Culkin
+ *
+ * @param <ElementType> The type of element contained in the tape.
+ */
+public interface TapeView<ElementType> extends Tape<ElementType>
+{
+ /**
+ * Return a view of this object as a tape.
+ *
+ * @return A view of this object as a tape.
+ */
+ public Tape<ElementType> tapeView();
+
+ @Override
+ public default ElementType item()
+ {
+ return tapeView().item();
+ }
+
+ @Override
+ public default void item(ElementType itm)
+ {
+ tapeView().item(itm);
+ }
+
+ @Override
+ public default int size()
+ {
+ return tapeView().size();
+ }
+
+ @Override
+ public default int position()
+ {
+ return tapeView().position();
+ }
+
+ @Override
+ public default void insertBefore(ElementType itm)
+ {
+ tapeView().insertBefore(itm);
+ }
+
+ @Override
+ public default void insertAfter(ElementType itm)
+ {
+ tapeView().insertAfter(itm);
+ }
+
+ @Override
+ public default ElementType remove()
+ {
+ return tapeView().remove();
+ }
+
+ @Override
+ public default void first()
+ {
+ tapeView().first();
+ }
+
+ @Override
+ public default void last()
+ {
+ tapeView().last();
+ }
+
+ @Override
+ public default boolean left()
+ {
+ return tapeView().left();
+ }
+
+ @Override
+ public default boolean left(int amt)
+ {
+ return tapeView().left(amt);
+ }
+
+ @Override
+ public default boolean right()
+ {
+ return tapeView().right();
+ }
+
+ @Override
+ public default boolean right(int amt)
+ {
+ return tapeView().right(amt);
+ }
+
+ @Override
+ public default boolean seekTo(int pos)
+ {
+ return tapeView().seekTo(pos);
+ }
+}