vishnu.model.algebra
Class AbstractBinaryRelation

java.lang.Object
  extended by vishnu.model.algebra.AbstractBinaryRelation
All Implemented Interfaces:
BinaryRelation, Relation
Direct Known Subclasses:
CartesianProduct, Division, EquiJoin, Intersection, MixedJoin, Substraction, Union

public abstract class AbstractBinaryRelation
extends java.lang.Object
implements BinaryRelation

Define una base reusable de relacion binaria del algebra relacional.

Author:
Mariano Tepper y Hernan Rancati
 

Nested Class Summary
 
Nested classes/interfaces inherited from interface vishnu.model.algebra.Relation
Relation.Context, Relation.ContextNotSelectedException
 
Field Summary
protected  Relation r
           
protected  Relation s
           
 
Constructor Summary
AbstractBinaryRelation(Relation r, Relation s)
          crea una relacion binaria con los operandos r y s.
 
Method Summary
 Algorithm algorithm()
          devuelve el algoritmo asignado a la relacion.
 void algorithm(Algorithm a)
          asigna el algoritmo a usar
static void debugging(boolean b)
           
 boolean hasChanged()
          Indica si se realizaro alguna modifiaccion en la relacion.
 Relation leftRelation()
          Devuelve la relacion de la izquierda del operador binario
 void leftRelation(Relation left)
          Setea la relacion de parametro de la izquierda.
 void perform(Relation.Context c)
          Ejecuta la relacion binaria.
 Relation rightRelation()
          Devuelve la relacion de la derecha del operador binario
 void rightRelation(Relation right)
          Setea la relacion de parametro de la derecha.
 void setChanged()
          Pone en true el flag de cambios de la relacion.
 void setContext(UserContext context)
          Setea el esquema de la relacion.
 TableSignature signature()
          Devuelve la signautra de la relacion.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

r

protected Relation r

s

protected Relation s
Constructor Detail

AbstractBinaryRelation

public AbstractBinaryRelation(Relation r,
                              Relation s)
crea una relacion binaria con los operandos r y s.

Method Detail

leftRelation

public Relation leftRelation()
Devuelve la relacion de la izquierda del operador binario

Specified by:
leftRelation in interface BinaryRelation
Returns:
la relacion interior izquierda.

leftRelation

public void leftRelation(Relation left)
Description copied from interface: BinaryRelation
Setea la relacion de parametro de la izquierda.

Specified by:
leftRelation in interface BinaryRelation
Parameters:
left - - la nueva relacion izquierda.

rightRelation

public Relation rightRelation()
Devuelve la relacion de la derecha del operador binario

Specified by:
rightRelation in interface BinaryRelation
Returns:
la relacion interior derecha.

rightRelation

public void rightRelation(Relation right)
Description copied from interface: BinaryRelation
Setea la relacion de parametro de la derecha.

Specified by:
rightRelation in interface BinaryRelation
Parameters:
right - - la nueva relacion derecha.

hasChanged

public boolean hasChanged()
Description copied from interface: Relation
Indica si se realizaro alguna modifiaccion en la relacion.

Specified by:
hasChanged in interface Relation
Returns:
true si se realizaron cambios, false si no.

setChanged

public void setChanged()
Description copied from interface: Relation
Pone en true el flag de cambios de la relacion.

Specified by:
setChanged in interface Relation

signature

public TableSignature signature()
                         throws Relation.ContextNotSelectedException
Description copied from interface: Relation
Devuelve la signautra de la relacion.

Specified by:
signature in interface Relation
Throws:
Relation.ContextNotSelectedException
Returns:
la signatura de la relacion.

perform

public void perform(Relation.Context c)
Ejecuta la relacion binaria. Se encarga de disparar la ejecucion de las relaciones de la izquierda y la derecha y pasar la ejecucion al algoritmo asignado para la relacion. Ademas, se encarga de liberar las tablas anonimas de los operandos una vez ejecutado el algoritmo.

Specified by:
perform in interface Relation
Parameters:
c - - el contexto de ejecución de la relacion.

algorithm

public Algorithm algorithm()
devuelve el algoritmo asignado a la relacion.

Specified by:
algorithm in interface Relation
Returns:
el algoritmo que ejecuta esta relacion.

algorithm

public void algorithm(Algorithm a)
asigna el algoritmo a usar

Specified by:
algorithm in interface Relation
Parameters:
a - - el algoritmo co el que se ejecutara la relacion.

debugging

public static void debugging(boolean b)

setContext

public void setContext(UserContext context)
Description copied from interface: Relation
Setea el esquema de la relacion.

Specified by:
setContext in interface Relation