org.axiondb.engine.rowiterators
Class AbstractFilteringRowIterator

java.lang.Object
  extended byorg.axiondb.engine.rowiterators.DelegatingRowIterator
      extended byorg.axiondb.engine.rowiterators.AbstractFilteringRowIterator
All Implemented Interfaces:
RowIterator
Direct Known Subclasses:
AbstractAcceptingRowIterator, LimitingRowIterator

public abstract class AbstractFilteringRowIterator
extends DelegatingRowIterator

Version:
$Revision: 1.11 $ $Date: 2004/09/09 23:47:43 $

Constructor Summary
AbstractFilteringRowIterator(RowIterator iterator)
           
 
Method Summary
 void add(Row row)
          Not supported in this base implementation.
protected  void clearNextRow()
           
protected  void clearPreviousRow()
           
 Row current()
          Returns the last Rowreturned by me (by next(),previous(), first(),last(), etc.).
 int currentIndex()
          Returns the index of the current()row, if any.
protected abstract  boolean determineNextRow()
           
protected abstract  boolean determinePreviousRow()
           
 Row first()
          Returns the first Rowin the list, positioning the cursor to just before the first Rowin the list.
 boolean hasCurrent()
          Returns true if I have a current Row.
 boolean hasNext()
          Returns true if I have more Rows when traversing the list in the forward direction.
 boolean hasPrevious()
          Returns true if I have more Rows when traversing the list in the reverse direction.
protected  boolean isNextAvailable()
           
protected  boolean isPreviousAvailable()
           
 Row last()
          Returns the last Rowin the list, positioning the cursor to just after the last Rowin the list.
 Row next()
          Returns the next Rowin the list, or throws NoSuchElementExceptionif no next Row exists.
 int nextIndex()
          Returns the index of the next()row, if any, or the number of elements is the iterator if we've reached the end.
 Row peekNext()
          Return the value that would be returned by a call to next(), if any, but don't update my position.
 Row peekPrevious()
          Return the value that would be returned by a call to previous(), if any, but don't update my position.
 Row previous()
          Returns the previous Rowin the list, or throws NoSuchElementExceptionif no next Row exists.
 int previousIndex()
          Returns the index of the previous()row, if any, or -1 if we're add the beginning of the list.
 void remove()
          Set the Rowat the current position in my underlying collection, or throw UnsupportedOperationException.
 void reset()
          Re-initialize this RowIterator to its initial state (positioned just before the first Rowin the list).
 void set(Row row)
          Set the Rowat the current position in my underlying collection, or throw UnsupportedOperationException.
protected  void setNext(Row row)
           
protected  void setPrevious(Row row)
           
 
Methods inherited from class org.axiondb.engine.rowiterators.DelegatingRowIterator
getDelegate, isEmpty, setDelegate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractFilteringRowIterator

public AbstractFilteringRowIterator(RowIterator iterator)
Method Detail

determineNextRow

protected abstract boolean determineNextRow()
                                     throws AxionException
Throws:
AxionException

determinePreviousRow

protected abstract boolean determinePreviousRow()
                                         throws AxionException
Throws:
AxionException

current

public Row current()
Description copied from interface: RowIterator
Returns the last Rowreturned by me (by RowIterator.next(),RowIterator.previous(), RowIterator.first(),RowIterator.last(), etc.).

Specified by:
current in interface RowIterator
Overrides:
current in class DelegatingRowIterator

currentIndex

public int currentIndex()
Description copied from interface: RowIterator
Returns the index of the RowIterator.current()row, if any.

Specified by:
currentIndex in interface RowIterator
Overrides:
currentIndex in class DelegatingRowIterator

hasCurrent

public boolean hasCurrent()
Description copied from interface: RowIterator
Returns true if I have a current Row. (In other words, returns true iff RowIterator.current()would return a Rowrather than throwing an exception.)

Specified by:
hasCurrent in interface RowIterator
Overrides:
hasCurrent in class DelegatingRowIterator

add

public void add(Row row)
         throws AxionException
Not supported in this base implementation.

Specified by:
add in interface RowIterator
Overrides:
add in class DelegatingRowIterator
Throws:
AxionException

hasNext

public boolean hasNext()
Description copied from interface: RowIterator
Returns true if I have more Rows when traversing the list in the forward direction. (In other words, returns true iff RowIterator.next()would return a Rowrather than throwing an exception.)

Specified by:
hasNext in interface RowIterator
Overrides:
hasNext in class DelegatingRowIterator

hasPrevious

public boolean hasPrevious()
Description copied from interface: RowIterator
Returns true if I have more Rows when traversing the list in the reverse direction. (In other words, returns true iff RowIterator.previous()would return a Rowrather than throwing an exception.)

Specified by:
hasPrevious in interface RowIterator
Overrides:
hasPrevious in class DelegatingRowIterator

next

public Row next()
         throws AxionException
Description copied from interface: RowIterator
Returns the next Rowin the list, or throws NoSuchElementExceptionif no next Row exists.

Specified by:
next in interface RowIterator
Overrides:
next in class DelegatingRowIterator
Throws:
AxionException

nextIndex

public int nextIndex()
Description copied from interface: RowIterator
Returns the index of the RowIterator.next()row, if any, or the number of elements is the iterator if we've reached the end.

Specified by:
nextIndex in interface RowIterator
Overrides:
nextIndex in class DelegatingRowIterator

previous

public Row previous()
             throws AxionException
Description copied from interface: RowIterator
Returns the previous Rowin the list, or throws NoSuchElementExceptionif no next Row exists.

Specified by:
previous in interface RowIterator
Overrides:
previous in class DelegatingRowIterator
Throws:
AxionException

previousIndex

public int previousIndex()
Description copied from interface: RowIterator
Returns the index of the RowIterator.previous()row, if any, or -1 if we're add the beginning of the list.

Specified by:
previousIndex in interface RowIterator
Overrides:
previousIndex in class DelegatingRowIterator

remove

public void remove()
            throws AxionException
Description copied from interface: RowIterator
Set the Rowat the current position in my underlying collection, or throw UnsupportedOperationException. (Optional operation.)

Specified by:
remove in interface RowIterator
Overrides:
remove in class DelegatingRowIterator
Throws:
AxionException

set

public void set(Row row)
         throws AxionException
Description copied from interface: RowIterator
Set the Rowat the current position in my underlying collection, or throw UnsupportedOperationException. (Optional operation.)

Specified by:
set in interface RowIterator
Overrides:
set in class DelegatingRowIterator
Throws:
AxionException

reset

public void reset()
           throws AxionException
Description copied from interface: RowIterator
Re-initialize this RowIterator to its initial state (positioned just before the first Rowin the list).

Specified by:
reset in interface RowIterator
Overrides:
reset in class DelegatingRowIterator
Throws:
AxionException

first

public Row first()
          throws AxionException
Description copied from interface: RowIterator
Returns the first Rowin the list, positioning the cursor to just before the first Rowin the list. (In other words, after first is called both RowIterator.next()and RowIterator.current()will return the first row in the list.)

Specified by:
first in interface RowIterator
Overrides:
first in class DelegatingRowIterator
Throws:
AxionException

last

public Row last()
         throws AxionException
Description copied from interface: RowIterator
Returns the last Rowin the list, positioning the cursor to just after the last Rowin the list. (In other words, after last is called both RowIterator.previous()and RowIterator.current()will return the last row in the list.)

Specified by:
last in interface RowIterator
Overrides:
last in class DelegatingRowIterator
Throws:
AxionException

peekNext

public Row peekNext()
             throws AxionException
Description copied from interface: RowIterator
Return the value that would be returned by a call to RowIterator.next(), if any, but don't update my position.

Specified by:
peekNext in interface RowIterator
Overrides:
peekNext in class DelegatingRowIterator
Throws:
AxionException

peekPrevious

public Row peekPrevious()
                 throws AxionException
Description copied from interface: RowIterator
Return the value that would be returned by a call to RowIterator.previous(), if any, but don't update my position.

Specified by:
peekPrevious in interface RowIterator
Overrides:
peekPrevious in class DelegatingRowIterator
Throws:
AxionException

setNext

protected void setNext(Row row)

clearNextRow

protected void clearNextRow()

setPrevious

protected void setPrevious(Row row)

clearPreviousRow

protected void clearPreviousRow()

isNextAvailable

protected boolean isNextAvailable()

isPreviousAvailable

protected boolean isPreviousAvailable()