Class RangeIteratorAdapter
- java.lang.Object
-
- org.apache.jackrabbit.commons.iterator.RangeIteratorAdapter
-
- All Implemented Interfaces:
java.util.Iterator,RangeIterator
- Direct Known Subclasses:
FrozenNodeIteratorAdapter
public class RangeIteratorAdapter extends java.lang.Object implements RangeIterator
Adapter for turning normalIterators intoRangeIterators. 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 RangeIteratorEMPTYStatic instance of an emptyRangeIterator.
-
Constructor Summary
Constructors Constructor Description RangeIteratorAdapter(java.util.Collection collection)Creates aRangeIteratorfor the given collection.RangeIteratorAdapter(java.util.Iterator iterator)Creates an adapter for the given iterator of unknown size.RangeIteratorAdapter(java.util.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 longgetPosition()Returns the current position of the iterator.longgetSize()Returns the size of the iterator.booleanhasNext()Checks if this iterator has more elements.java.lang.Objectnext()Returns the next element in this iterator and advances the iterator position.voidremove()Removes the previously retrieved element.voidskip(long n)Skips the given number of elements.
-
-
-
Field Detail
-
EMPTY
public static final RangeIterator EMPTY
Static instance of an emptyRangeIterator.
-
-
Constructor Detail
-
RangeIteratorAdapter
public RangeIteratorAdapter(java.util.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(java.util.Iterator iterator)
Creates an adapter for the given iterator of unknown size.- Parameters:
iterator- adapted iterator
-
RangeIteratorAdapter
public RangeIteratorAdapter(java.util.Collection collection)
Creates aRangeIteratorfor the given collection.- Parameters:
collection- the collection to iterate
-
-
Method Detail
-
getPosition
public long getPosition()
Returns the current position of the iterator.- Specified by:
getPositionin interfaceRangeIterator- Returns:
- iterator position
-
getSize
public long getSize()
Returns the size of the iterator.- Specified by:
getSizein interfaceRangeIterator- Returns:
- iterator size, or -1 if unknown
-
skip
public void skip(long n) throws java.lang.IllegalArgumentException, java.util.NoSuchElementExceptionSkips the given number of elements.- Specified by:
skipin interfaceRangeIterator- Parameters:
n- number of elements to skip- Throws:
java.lang.IllegalArgumentException- if n is negativejava.util.NoSuchElementException- 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.- Specified by:
hasNextin interfacejava.util.Iterator- Returns:
trueif this iterator has more elements,falseotherwise
-
next
public java.lang.Object next() throws java.util.NoSuchElementExceptionReturns 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:
nextin interfacejava.util.Iterator- Returns:
- next element
- Throws:
java.util.NoSuchElementException- if there are no more elements
-
remove
public void remove() throws java.lang.UnsupportedOperationException, java.lang.IllegalStateExceptionRemoves the previously retrieved element. Decreases the current position and size of this iterator.- Specified by:
removein interfacejava.util.Iterator- Throws:
java.lang.UnsupportedOperationException- if removes are not permittedjava.lang.IllegalStateException- if there is no previous element to remove
-
-