org.axiondb.engine.rowiterators
Class BaseJoinedRowIterator

java.lang.Object
  extended byorg.axiondb.engine.rowiterators.BaseRowIterator
      extended byorg.axiondb.engine.rowiterators.BaseJoinedRowIterator
All Implemented Interfaces:
JoinedRowIterator, RowIterator
Direct Known Subclasses:
IndexJoinedRowIterator, NestedLoopJoinedRowIterator

public abstract class BaseJoinedRowIterator
extends BaseRowIterator
implements JoinedRowIterator

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

Constructor Summary
BaseJoinedRowIterator()
           
 
Method Summary
protected  boolean acceptable(int rowindex, Row row)
           
protected  void addIterator(RowIterator iter)
           
protected  boolean allIteratorsAreEmpty()
           
protected  boolean anyIteratorIsEmpty()
           
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.
 Row first()
          Returns the first Rowin the list, positioning the cursor to just before the first Rowin the list.
protected  RowIterator getIterator(int i)
           
protected  int getIteratorCount()
           
protected abstract  String getShortName()
           
 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 isLeftJoin()
           
protected  boolean isNextRowSet()
           
protected  boolean isPreviousRowSet()
           
protected  boolean isRightJoin()
           
 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 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 reset()
          Re-initialize this RowIterator to its initial state (positioned just before the first Rowin the list).
protected abstract  void set(int rowIndex, Row row)
           
 void set(Row row)
          Set the Rowat the current position in my underlying collection, or throw UnsupportedOperationException.
 void setJoinCondition(RowDecorator decorator, Selectable condition)
           
 void setJoinType(int type)
           
protected abstract  boolean setNextRow()
           
protected  void setNextRow(Row row)
           
protected abstract  boolean setPreviousRow()
           
protected  void setPreviousRow(Row row)
           
 String toString()
           
 
Methods inherited from class org.axiondb.engine.rowiterators.BaseRowIterator
add, isEmpty, peekNext, peekPrevious, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.axiondb.JoinedRowIterator
addRowIterator
 
Methods inherited from interface org.axiondb.RowIterator
add, isEmpty, peekNext, peekPrevious, remove
 

Constructor Detail

BaseJoinedRowIterator

public BaseJoinedRowIterator()
Method Detail

setJoinCondition

public void setJoinCondition(RowDecorator decorator,
                             Selectable condition)
Specified by:
setJoinCondition in interface JoinedRowIterator

setJoinType

public void setJoinType(int type)
Specified by:
setJoinType in interface JoinedRowIterator

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
Specified by:
current in class BaseRowIterator

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
Specified by:
currentIndex in class BaseRowIterator

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
Specified by:
hasCurrent in class BaseRowIterator

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
Specified by:
hasNext in class BaseRowIterator

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
Specified by:
next in class BaseRowIterator
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
Specified by:
nextIndex in class BaseRowIterator

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
Specified by:
hasPrevious in class BaseRowIterator

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
Specified by:
previous in class BaseRowIterator
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
Specified by:
previousIndex in class BaseRowIterator

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 BaseRowIterator
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 BaseRowIterator
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
Specified by:
reset in class BaseRowIterator
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 BaseRowIterator
Throws:
AxionException

toString

public String toString()

set

protected abstract void set(int rowIndex,
                            Row row)
                     throws AxionException
Throws:
AxionException

getShortName

protected abstract String getShortName()

setNextRow

protected abstract boolean setNextRow()
                               throws AxionException
Throws:
AxionException

setPreviousRow

protected abstract boolean setPreviousRow()
                                   throws AxionException
Throws:
AxionException

acceptable

protected boolean acceptable(int rowindex,
                             Row row)
                      throws AxionException
Throws:
AxionException

isLeftJoin

protected boolean isLeftJoin()

isRightJoin

protected boolean isRightJoin()

isNextRowSet

protected boolean isNextRowSet()

isPreviousRowSet

protected boolean isPreviousRowSet()

setNextRow

protected void setNextRow(Row row)

setPreviousRow

protected void setPreviousRow(Row row)

clearNextRow

protected void clearNextRow()

clearPreviousRow

protected void clearPreviousRow()

getIteratorCount

protected int getIteratorCount()

addIterator

protected void addIterator(RowIterator iter)

getIterator

protected RowIterator getIterator(int i)

allIteratorsAreEmpty

protected boolean allIteratorsAreEmpty()

anyIteratorIsEmpty

protected boolean anyIteratorIsEmpty()