saffron.runtime
Class BufferedIterator
java.lang.Object
|
+--saffron.runtime.BufferedIterator
- All Implemented Interfaces:
- Enumeration, Iterable, Iterator
- public class BufferedIterator
- extends Object
- implements Iterator, Iterable, Enumeration
BufferedIterator
converts a regular iterator into one which
implements Iterable
(and Enumeration
for good measure).
Implementation note: The first time you read from it, it duplicates
objects into a list. The next time, it creates an iterator from that list.
The implementation handles infinite iterators gracefully: it copies objects
onto the replay list only when they are requested for the first time.
- Since:
- 26 April, 2002
- Version:
- $Id: //open/saffron/src/main/saffron/runtime/BufferedIterator.java#3 $
- Author:
- jhyde
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
list
private List list
clonerator
private BufferedIterator.Clonerator clonerator
iterator
private Iterator iterator
BufferedIterator
public BufferedIterator(Iterator iterator)
hasNext
public boolean hasNext()
- Specified by:
hasNext
in interface Iterator
next
public Object next()
- Specified by:
next
in interface Iterator
hasMoreElements
public boolean hasMoreElements()
- Specified by:
hasMoreElements
in interface Enumeration
nextElement
public Object nextElement()
- Specified by:
nextElement
in interface Enumeration
remove
public void remove()
- Specified by:
remove
in interface Iterator
restart
public void restart()
iterator
public Iterator iterator()
- Description copied from interface:
Iterable
- Returns an iterator over the elements in this collection. There are no
guarantees over the order in which the elements are returned.
If this method is called twice on the same object, and the object is
not modified in between times, the iterators produced may or may not be
the same iterator, and may or may not return the elements in the same
order, but must return the same objects.
- Specified by:
iterator
in interface Iterable