dk.netarkivet.common.utils
Class FilterIterator<T,S>
java.lang.Object
dk.netarkivet.common.utils.FilterIterator<T,S>
- Type Parameters:
T
- Type of IteratorS
- Type of objects returned by the iterator.
- All Implemented Interfaces:
- java.util.Iterator<S>
- Direct Known Subclasses:
- FileArrayIterator
public abstract class FilterIterator<T,S>
- extends java.lang.Object
- implements java.util.Iterator<S>
An iterator that filters out and converts items from another iterator.
Java 1.5 type:
FilterIterator,>
filter( o);
Constructor Summary |
FilterIterator(java.util.Iterator<T> i)
Create a new iterator based on an old one. |
Method Summary |
protected abstract S |
filter(T o)
Returns the object corresponding to the given object, or null if
that object is to be skipped. |
boolean |
hasNext()
Returns true if the iteration has more elements. |
S |
next()
Returns the next element in the iteration. |
void |
remove()
Removes from the underlying collection the last element returned by the
iterator (optional operation). |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FilterIterator
public FilterIterator(java.util.Iterator<T> i)
- Create a new iterator based on an old one.
The old one must not contain any null entries.
- Parameters:
i
- An iterator
filter
protected abstract S filter(T o)
- Returns the object corresponding to the given object, or null if
that object is to be skipped.
- Parameters:
o
- An object in the source iterator domain
- Returns:
- An object in this iterators domain, or null
hasNext
public boolean hasNext()
- Returns true if the iteration has more elements. (In other
words, returns true if next would return an element
rather than throwing an exception.)
- Specified by:
hasNext
in interface java.util.Iterator<S>
- Returns:
- true if the iterator has more elements.
next
public S next()
- Returns the next element in the iteration. Calling this method
repeatedly until the
hasNext()
method returns false will
return each element in the underlying collection exactly once.
- Specified by:
next
in interface java.util.Iterator<S>
- Returns:
- the next element in the iteration.
- Throws:
java.util.NoSuchElementException
- iteration has no more elements.
remove
public void remove()
- Removes from the underlying collection the last element returned by the
iterator (optional operation). This method can be called only once per
call to next. The behavior of an iterator is unspecified if
the underlying collection is modified while the iteration is in
progress in any way other than by calling this method.
- Specified by:
remove
in interface java.util.Iterator<S>
- Throws:
java.lang.UnsupportedOperationException
- if the remove
operation is not supported by this Iterator.
java.lang.IllegalStateException
- if the next method has not
yet been called, or the remove method has already
been called after the last call to the next
method.