Class RangeIteratorAdapter
- java.lang.Object
-
- org.apache.jackrabbit.commons.iterator.RangeIteratorAdapter
-
- All Implemented Interfaces:
Iterator
,RangeIterator
- Direct Known Subclasses:
FrozenNodeIteratorAdapter
,ScoreNodeIteratorImpl
public class RangeIteratorAdapter extends Object implements RangeIterator
Adapter for turning normalIterator
s intoRangeIterator
s. This helper class is used by the adapter classes in this package to implement the JCR iterator interfaces on top of normal Java iterators.
-
-
Field Summary
Fields Modifier and Type Field Description static RangeIterator
EMPTY
Static instance of an emptyRangeIterator
.
-
Constructor Summary
Constructors Constructor Description RangeIteratorAdapter(Collection collection)
Creates aRangeIterator
for the given collection.RangeIteratorAdapter(Iterator iterator)
Creates an adapter for the given iterator of unknown size.RangeIteratorAdapter(Iterator iterator, long size)
Creates an adapter for the given iterator of the given size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getPosition()
Returns the current position of the iterator.long
getSize()
Returns the size of the iterator.boolean
hasNext()
Checks if this iterator has more elements.Object
next()
Returns the next element in this iterator and advances the iterator position.void
remove()
Removes the previously retrieved element.void
skip(long n)
Skips the given number of elements.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Field Detail
-
EMPTY
public static final RangeIterator EMPTY
Static instance of an emptyRangeIterator
.
-
-
Constructor Detail
-
RangeIteratorAdapter
public RangeIteratorAdapter(Iterator iterator, long size)
Creates an adapter for the given iterator of the given size.- Parameters:
iterator
- adapted iteratorsize
- size of the iterator, or -1 if unknown
-
RangeIteratorAdapter
public RangeIteratorAdapter(Iterator iterator)
Creates an adapter for the given iterator of unknown size.- Parameters:
iterator
- adapted iterator
-
RangeIteratorAdapter
public RangeIteratorAdapter(Collection collection)
Creates aRangeIterator
for the given collection.- Parameters:
collection
- the collection to iterate
-
-
Method Detail
-
getPosition
public long getPosition()
Returns the current position of the iterator.- Specified by:
getPosition
in interfaceRangeIterator
- Returns:
- iterator position
-
getSize
public long getSize()
Returns the size of the iterator.- Specified by:
getSize
in interfaceRangeIterator
- Returns:
- iterator size, or -1 if unknown
-
skip
public void skip(long n) throws IllegalArgumentException, NoSuchElementException
Skips the given number of elements.- Specified by:
skip
in interfaceRangeIterator
- Parameters:
n
- number of elements to skip- Throws:
IllegalArgumentException
- if n is negativeNoSuchElementException
- if skipped past the last element
-
hasNext
public boolean hasNext()
Checks if this iterator has more elements. If there are no more elements and the size of the iterator is unknown, then the size is set to the current position.
-
next
public Object next() throws NoSuchElementException
Returns the next element in this iterator and advances the iterator position. If there are no more elements and the size of the iterator is unknown, then the size is set to the current position.- Specified by:
next
in interfaceIterator
- Returns:
- next element
- Throws:
NoSuchElementException
- if there are no more elements
-
remove
public void remove() throws UnsupportedOperationException, IllegalStateException
Removes the previously retrieved element. Decreases the current position and size of this iterator.- Specified by:
remove
in interfaceIterator
- Throws:
UnsupportedOperationException
- if removes are not permittedIllegalStateException
- if there is no previous element to remove
-
-