/*
* @(#)ReverseFigureEnumerator.java
*
* Project: JHotdraw - a GUI framework for technical drawings
* http://www.jhotdraw.org
* http://jhotdraw.sourceforge.net
* Copyright: � by the original author(s) and all contributors
* License: Lesser GNU Public License (LGPL)
* http://www.opensource.org/licenses/lgpl-license.html
*/
package org.jhotdraw.standard;
import org.jhotdraw.util.ReverseListEnumerator;
import org.jhotdraw.framework.*;
import java.util.Iterator;
import java.util.List;
/**
* An Enumeration that enumerates a Collection of figures back (size-1) to front (0).
*
* @version <$CURRENT_VERSION$>
*/
public final class ReverseFigureEnumerator implements FigureEnumeration {
private Iterator myIterator;
private List myInitialList;
public ReverseFigureEnumerator(List l) {
myInitialList = l;
reset();
}
/**
* Returns true if the enumeration contains more elements; false
* if its empty.
*/
public boolean hasNextFigure() {
return myIterator.hasNext();
}
/**
* Returns the next element casted as a figure of the enumeration. Calls to this
* method will enumerate successive elements.
* @exception java.util.NoSuchElementException If no more elements exist.
*/
public Figure nextFigure() {
return (Figure)myIterator.next();
}
/**
* Reset the enumeration so it can be reused again. However, the
* underlying collection might have changed since the last usage
* so the elements and the order may vary when using an enumeration
* which has been reset.
*/
public void reset() {
myIterator = new ReverseListEnumerator(myInitialList);
}
}