10 public class CachingRewindableIterator implements RewindableIterator {
11 private Iterator master;
12 private List cachedItems;
13 private int iterationPosition;
15 public CachingRewindableIterator(Iterator anIterator) {
17 cachedItems = new Vector();
18 iterationPosition = 0;
21 public boolean hasNext() {
22 return iterationPosition<cachedItems.size() || master.hasNext();
25 public Object next() {
28 if (iterationPosition>=cachedItems.size()) {
29 cachedItems.add(master.next());
32 result = cachedItems.get(iterationPosition);
38 public void remove() {
39 throw new UnsupportedOperationException();
42 public void rewind() {