org.axiondb.engine.rowiterators
Class AbstractJoinedRowIterator

java.lang.Object
  extended by org.axiondb.engine.rowiterators.BaseRowIterator
      extended by org.axiondb.engine.rowiterators.AbstractJoinedRowIterator
All Implemented Interfaces:
RowIterator
Direct Known Subclasses:
IndexNestedLoopJoinedRowIterator, NestedLoopJoinedRowIterator

public abstract class AbstractJoinedRowIterator
extends BaseRowIterator

Version:
$Revision: 1.7 $ $Date: 2005/03/31 00:07:07 $

Constructor Summary
AbstractJoinedRowIterator()
           
 
Method Summary
 Row current()
          Returns the last Rowreturned by me (by RowIterator.next(),RowIterator.previous(), RowIterator.first(),RowIterator.last(), etc.).
 int currentIndex()
          Returns the index of the RowIterator.current()row, if any.
protected abstract  RowIterator generateRightRowIterator()
           
protected  Selectable getJoinCondition()
           
protected  RowIterator getLeftRowIterator()
           
protected  int getRightSideColumnCount()
           
protected  RowDecorator getRowDecorator()
           
 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 isRightOuter()
           
protected  boolean isSwapLeftAndRight()
           
 Row next()
          Returns the next Rowin the list, or throws NoSuchElementExceptionif no next Row exists.
 int nextIndex()
          Returns the index of the RowIterator.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 RowIterator.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).
 void setJoinCondition(Selectable joinCondition, RowDecorator decorator)
           
protected  void setLeftRowIterator(RowIterator left)
           
protected  void setRightOuter(boolean b)
           
protected  void setRightSideColumnCount(int rightColumnCount)
           
protected  void setSwapLeftAndRight(boolean b)
           
 java.lang.String toString()
           
 
Methods inherited from class org.axiondb.engine.rowiterators.BaseRowIterator
add, first, isEmpty, last, next, peekNext, peekPrevious, previous, remove, set, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractJoinedRowIterator

public AbstractJoinedRowIterator()
Method Detail

current

public Row current()
            throws java.util.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
Specified by:
current in class BaseRowIterator
Throws:
java.util.NoSuchElementException - when no Rowhas yet been returned

currentIndex

public int currentIndex()
                 throws java.util.NoSuchElementException
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
Throws:
java.util.NoSuchElementException - when no Rowhas yet been returned

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

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

next

public Row next()
         throws java.util.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
Specified by:
next in class BaseRowIterator
Throws:
java.util.NoSuchElementException - when there is no next Row
AxionException - when a problem occurs accessing the Row

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

previous

public Row previous()
             throws java.util.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
Specified by:
previous in class BaseRowIterator
Throws:
java.util.NoSuchElementException - when there is no next Row
AxionException - when a problem occurs accessing the Row

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

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

setJoinCondition

public void setJoinCondition(Selectable joinCondition,
                             RowDecorator decorator)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

generateRightRowIterator

protected abstract RowIterator generateRightRowIterator()
                                                 throws AxionException
Throws:
AxionException

getJoinCondition

protected Selectable getJoinCondition()

getLeftRowIterator

protected RowIterator getLeftRowIterator()

getRightSideColumnCount

protected int getRightSideColumnCount()

getRowDecorator

protected RowDecorator getRowDecorator()

isRightOuter

protected boolean isRightOuter()

isSwapLeftAndRight

protected boolean isSwapLeftAndRight()

setLeftRowIterator

protected void setLeftRowIterator(RowIterator left)

setRightOuter

protected void setRightOuter(boolean b)

setRightSideColumnCount

protected void setRightSideColumnCount(int rightColumnCount)

setSwapLeftAndRight

protected void setSwapLeftAndRight(boolean b)