org.apache.jackrabbit.commons.iterator
Class FilteredRangeIterator

java.lang.Object
  extended by org.apache.jackrabbit.commons.iterator.FilteredRangeIterator
All Implemented Interfaces:
Iterator, RangeIterator

public class FilteredRangeIterator
extends Object
implements RangeIterator

Filtering decorator for iterators.


Constructor Summary
FilteredRangeIterator(Iterator<?> iterator)
          Creates a pre-fetching decorator for the given iterator.
FilteredRangeIterator(Iterator<?> iterator, Predicate predicate)
          Creates a new filtered iterator with the default pre-fetch buffer size.
FilteredRangeIterator(Iterator<?> iterator, Predicate predicate, int bufferSize)
          Creates a new filtered iterator.
 
Method Summary
 long getPosition()
          Returns the zero-based position of the next element in this iterator.
 long getSize()
          Returns the total number of elements in this iterator, or -1 if that number is unknown.
 boolean hasNext()
          Checks whether there are more elements in this iterator.
 Object next()
          Returns the next element in this iterator.
 void remove()
          Not supported.
 void skip(long n)
          Skips the next n elements.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilteredRangeIterator

public FilteredRangeIterator(Iterator<?> iterator,
                             Predicate predicate,
                             int bufferSize)
Creates a new filtered iterator.

Parameters:
iterator - underlying iterator
predicate -
bufferSize -

FilteredRangeIterator

public FilteredRangeIterator(Iterator<?> iterator,
                             Predicate predicate)
Creates a new filtered iterator with the default pre-fetch buffer size.

Parameters:
iterator - underlying iterator
predicate - predicate used for filtering

FilteredRangeIterator

public FilteredRangeIterator(Iterator<?> iterator)
Creates a pre-fetching decorator for the given iterator. This constructor is mostly useful when it is desirable to use the pre-fetching feature to automatically

Parameters:
iterator - underlying iterator
predicate - predicate used for filtering
Method Detail

getPosition

public long getPosition()
Returns the zero-based position of the next element in this iterator.

Specified by:
getPosition in interface RangeIterator
Returns:
position of the next element

getSize

public long getSize()
Returns the total number of elements in this iterator, or -1 if that number is unknown.

Specified by:
getSize in interface RangeIterator
Returns:
number of elements in this iterator, or -1

skip

public void skip(long n)
          throws IllegalArgumentException,
                 NoSuchElementException
Skips the next n elements.

Specified by:
skip in interface RangeIterator
Parameters:
n - number of elements to skip
Throws:
IllegalArgumentException - if n is negative
NoSuchElementException - if there are not enough elements to skip

hasNext

public boolean hasNext()
Checks whether there are more elements in this iterator.

Specified by:
hasNext in interface Iterator
Returns:
true if there are more elements, false otherwise

next

public Object next()
            throws NoSuchElementException
Returns the next element in this iterator.

Specified by:
next in interface Iterator
Returns:
next element
Throws:
NoSuchElementException - if there are no more elements

remove

public void remove()
            throws UnsupportedOperationException
Not supported.

Specified by:
remove in interface Iterator
Throws:
UnsupportedOperationException


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