vishnu.model.algebra.algorithms.join
Class AbstractJoinAlgorithm

java.lang.Object
  extended by vishnu.model.algebra.algorithms.join.AbstractJoinAlgorithm
All Implemented Interfaces:
Algorithm, BinaryAlgorithm
Direct Known Subclasses:
HashJoinAlgorithm, IndexNestedLoopJoinAlgorithm, SortMergeJoinAlgorithm

public abstract class AbstractJoinAlgorithm
extends java.lang.Object
implements BinaryAlgorithm

Author:
Mariano Tepper
 

Field Summary
protected  boolean canceled
           
protected  SQLConditionalExpression conditions
           
protected  TableContext l
           
protected  TableContext r
           
 
Constructor Summary
AbstractJoinAlgorithm()
           
 
Method Summary
 void attach(Relation r)
          Vincula una relacion al algoritmo para su ejecucion.
abstract  boolean canBePerformed()
          Indica si el algoritmo puede ser ejecutado sobre la relacion definida.
 void cancel()
          Cancela la ejecucion del algoritmo.
abstract  Algorithm clone()
          Clona el algoritmo.
 boolean isCanceled()
          Indica si el algoritmo fue cancelado.
 void leftTable(TableContext c)
          Setea la tabla izquierda del algoritmo.
 void perform(Relation.Context c)
          Ejecuta el algoritmo con el contexto dado
protected abstract  void performProduct(TableContext left, TableContext right, Table destTable, Session s)
           
 void rightTable(TableContext c)
          Setea la tabla derecha del algoritmo.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

conditions

protected SQLConditionalExpression conditions

l

protected TableContext l

r

protected TableContext r

canceled

protected boolean canceled
Constructor Detail

AbstractJoinAlgorithm

public AbstractJoinAlgorithm()
Method Detail

canBePerformed

public abstract boolean canBePerformed()
Description copied from interface: Algorithm
Indica si el algoritmo puede ser ejecutado sobre la relacion definida.

Specified by:
canBePerformed in interface Algorithm
Returns:
true si puede ser ejecutado, false si no.

perform

public void perform(Relation.Context c)
Description copied from interface: Algorithm
Ejecuta el algoritmo con el contexto dado

Specified by:
perform in interface Algorithm
Parameters:
c - - el contexto de ejecucion.

performProduct

protected abstract void performProduct(TableContext left,
                                       TableContext right,
                                       Table destTable,
                                       Session s)

leftTable

public void leftTable(TableContext c)
Description copied from interface: BinaryAlgorithm
Setea la tabla izquierda del algoritmo.

Specified by:
leftTable in interface BinaryAlgorithm

rightTable

public void rightTable(TableContext c)
Description copied from interface: BinaryAlgorithm
Setea la tabla derecha del algoritmo.

Specified by:
rightTable in interface BinaryAlgorithm

cancel

public void cancel()
Description copied from interface: Algorithm
Cancela la ejecucion del algoritmo.

Specified by:
cancel in interface Algorithm

isCanceled

public boolean isCanceled()
Description copied from interface: Algorithm
Indica si el algoritmo fue cancelado.

Specified by:
isCanceled in interface Algorithm
Returns:
true si fue cancelado, false si no.

attach

public void attach(Relation r)
Description copied from interface: Algorithm
Vincula una relacion al algoritmo para su ejecucion.

Specified by:
attach in interface Algorithm
Parameters:
r - - la relacion sobre la que se ejecutara el algoritmo.

clone

public abstract Algorithm clone()
Description copied from interface: Algorithm
Clona el algoritmo.

Specified by:
clone in interface Algorithm
Overrides:
clone in class java.lang.Object