Merge branch 'features/JAL-845splitPaneMergeDevelop' into develop
[jalview.git] / src / jalview / util / ReverseListIterator.java
diff --git a/src/jalview/util/ReverseListIterator.java b/src/jalview/util/ReverseListIterator.java
new file mode 100644 (file)
index 0000000..69a7345
--- /dev/null
@@ -0,0 +1,42 @@
+package jalview.util;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+/**
+ * An iterator that traverses a list backwards.
+ * 
+ * @author gmcarstairs (and checked against
+ *         org.codehaus.groovey.runtime.ReverseListIterator)
+ *
+ * @param <E>
+ */
+public class ReverseListIterator<E> implements Iterator<E>
+{
+
+  private ListIterator<E> iterator;
+
+  public ReverseListIterator(List<E> stuff)
+  {
+    this.iterator = stuff.listIterator(stuff.size());
+  }
+  @Override
+  public boolean hasNext()
+  {
+    return iterator.hasPrevious();
+  }
+
+  @Override
+  public E next()
+  {
+    return iterator.previous();
+  }
+
+  @Override
+  public void remove()
+  {
+    iterator.remove();
+  }
+
+}