@@ -0,0 +1,1211 @@
+package co.phoenixlab.common.lang;%0A%0Aimport java.util.ListIterator;%0A%0A/**%0A * Provides a reversed view of a ListIterator, starting from the last element.%0A * @param %3CE%3E%0A */%0Apublic class ReverseListIterator%3CE%3E implements ListIterator%3CE%3E %7B%0A%0A    private final ListIterator%3CE%3E parent;%0A%0A    public ReverseListIterator(ListIterator%3CE%3E parent) %7B%0A        this.parent = parent;%0A        //  Wind the iterator to the end%0A        while (parent.hasNext()) %7B%0A            parent.next();%0A        %7D%0A    %7D%0A%0A    @Override%0A    public boolean hasNext() %7B%0A        return parent.hasPrevious();%0A    %7D%0A%0A    @Override%0A    public E next() %7B%0A        return parent.previous();%0A    %7D%0A%0A    @Override%0A    public boolean hasPrevious() %7B%0A        return parent.hasNext();%0A    %7D%0A%0A    @Override%0A    public E previous() %7B%0A        return parent.next();%0A    %7D%0A%0A    @Override%0A    public int nextIndex() %7B%0A        return parent.previousIndex();%0A    %7D%0A%0A    @Override%0A    public int previousIndex() %7B%0A        return parent.nextIndex();%0A    %7D%0A%0A    @Override%0A    public void remove() %7B%0A        parent.remove();%0A    %7D%0A%0A    @Override%0A    public void set(E e) %7B%0A        parent.set(e);%0A    %7D%0A%0A    @Override%0A    public void add(E e) %7B%0A        parent.add(e);%0A    %7D%0A%7D%0A

Add a reverse view ListIterator