vishnu.model.algebra.algorithms.selection
Class AbstractSelectionAlgorithm

java.lang.Object
  extended by vishnu.model.algebra.algorithms.selection.AbstractSelectionAlgorithm
All Implemented Interfaces:
Algorithm, UnaryAlgorithm
Direct Known Subclasses:
HashIndexEqualitySelectionAlgorithm, NoIndexSortedDataSelectionAlgorithm, ScanSelectionAlgorithm

public abstract class AbstractSelectionAlgorithm
extends java.lang.Object
implements UnaryAlgorithm

Author:
Mariano Tepper
 

Field Summary
protected  boolean canceled
           
protected  SQLConditionalExpression conditions
           
protected  TableContext inner
           
protected  Relation r
           
 
Constructor Summary
AbstractSelectionAlgorithm()
           
 
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.
protected abstract  void copyFilteredTable(Table destTable, Table sourceTable, Session session)
           
 void innerTable(TableContext c)
          Setea la tabla interior del algoritmo.
 boolean isCanceled()
          Indica si el algoritmo fue cancelado.
 void perform(Relation.Context c)
          Ejecuta el algoritmo con el contexto dado
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inner

protected TableContext inner

r

protected Relation r

conditions

protected SQLConditionalExpression conditions

canceled

protected boolean canceled
Constructor Detail

AbstractSelectionAlgorithm

public AbstractSelectionAlgorithm()
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.

copyFilteredTable

protected abstract void copyFilteredTable(Table destTable,
                                          Table sourceTable,
                                          Session session)

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.

innerTable

public void innerTable(TableContext c)
Description copied from interface: UnaryAlgorithm
Setea la tabla interior del algoritmo.

Specified by:
innerTable in interface UnaryAlgorithm
Parameters:
c - - la tabla interior del algoritmo.

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