org.apache.jackrabbit.commons.iterator
Class RangeIteratorAdapter

java.lang.Object
  extended by 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 normal Iterators into RangeIterators. 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
static RangeIterator EMPTY
          Static instance of an empty RangeIterator.
 
Constructor Summary
RangeIteratorAdapter(Collection collection)
          Creates a RangeIterator 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
 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
 

Field Detail

EMPTY

public static final RangeIterator EMPTY
Static instance of an empty RangeIterator.

Constructor Detail

RangeIteratorAdapter

public RangeIteratorAdapter(Iterator iterator,
                            long size)
Creates an adapter for the given iterator of the given size.

Parameters:
iterator - adapted iterator
size - 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 a RangeIterator 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 interface RangeIterator
Returns:
iterator position

getSize

public long getSize()
Returns the size of the iterator.

Specified by:
getSize in interface RangeIterator
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 interface RangeIterator
Parameters:
n - number of elements to skip
Throws:
IllegalArgumentException - if n is negative
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:
hasNext in interface Iterator
Returns:
true if this iterator has more elements, false otherwise

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 interface Iterator
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 interface Iterator
Throws:
UnsupportedOperationException - if removes are not permitted
IllegalStateException - if there is no previous element to remove


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.