org.axiondb.engine.rowiterators
Class BaseRowIterator

java.lang.Object
  extended byorg.axiondb.engine.rowiterators.BaseRowIterator
All Implemented Interfaces:
RowIterator
Direct Known Subclasses:
BaseJoinedRowIterator, ChainedRowIterator, CollatingRowIterator, LazyRowRowIterator, ListIteratorRowIterator, RowViewRowIterator

public abstract class BaseRowIterator
extends Object
implements RowIterator

An abstract base implementation of RowIterator.

Version:
$Revision: 1.8 $ $Date: 2004/08/21 02:59:45 $

Constructor Summary
BaseRowIterator()
           
 
Method Summary
 void add(Row row)
          Not supported in the base implementation.
abstract  Row current()
          Returns the last Rowreturned by me (by next(),previous(), first(),last(), etc.).
abstract  int currentIndex()
          Returns the index of the current()row, if any.
 Row first()
          Returns the first Rowin the list, positioning the cursor to just before the first Rowin the list.
abstract  boolean hasCurrent()
          Returns true if I have a current Row.
abstract  boolean hasNext()
          Returns true if I have more Rows when traversing the list in the forward direction.
abstract  boolean hasPrevious()
          Returns true if I have more Rows when traversing the list in the reverse direction.
 boolean isEmpty()
          Returns true if there are no rows to report with this iterator.
 Row last()
          Returns the last Rowin the list, positioning the cursor to just after the last Rowin the list.
abstract  Row next()
          Returns the next Rowin the list, or throws NoSuchElementExceptionif no next Row exists.
abstract  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.
abstract  Row previous()
          Returns the previous Rowin the list, or throws NoSuchElementExceptionif no next Row exists.
abstract  int previousIndex()
          Returns the index of the previous()row, if any, or -1 if we're add the beginning of the list.
 void remove()
          Not supported in the base implementation.
abstract  void reset()
          Re-initialize this RowIterator to its initial state (positioned just before the first Rowin the list).
 void set(Row row)
          Not supported in the base implementation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BaseRowIterator

public BaseRowIterator()
Method Detail

current

public abstract Row current()
                     throws NoSuchElementException
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
Throws:
NoSuchElementException - when no Rowhas yet been returned

currentIndex

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

Specified by:
currentIndex in interface RowIterator
Throws:
NoSuchElementException - when no Rowhas yet been returned

hasCurrent

public abstract 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

hasNext

public abstract 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

hasPrevious

public abstract 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

next

public abstract Row next()
                  throws NoSuchElementException,
                         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
Throws:
NoSuchElementException - when there is no next Row
AxionException - when a problem occurs accessing the Row

nextIndex

public abstract 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

previous

public abstract Row previous()
                      throws NoSuchElementException,
                             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
Throws:
AxionException - when a problem occurs accessing the Row
NoSuchElementException - when there is no next Row

previousIndex

public abstract 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

reset

public abstract 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
Throws:
AxionException

isEmpty

public boolean isEmpty()
Description copied from interface: RowIterator
Returns true if there are no rows to report with this iterator.

Specified by:
isEmpty in interface RowIterator

add

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

Specified by:
add in interface RowIterator
Throws:
AxionException

set

public void set(Row row)
         throws AxionException
Not supported in the base implementation.

Specified by:
set in interface RowIterator
Throws:
AxionException

remove

public void remove()
            throws AxionException
Not supported in the base implementation.

Specified by:
remove in interface RowIterator
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
Throws:
AxionException - when a problem occurs accessing the Row

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
Throws:
AxionException - when a problem occurs accessing the Row

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
Throws:
AxionException - when a problem occurs accessing the Row

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
Throws:
AxionException - when a problem occurs accessing the Row