vishnu.model.algebra
Class AbstractUnaryRelation

java.lang.Object
  extended by vishnu.model.algebra.AbstractUnaryRelation
All Implemented Interfaces:
java.lang.Cloneable, Relation, UnaryRelation
Direct Known Subclasses:
ConjunctiveSelection, MixedSelection, Projection

public abstract class AbstractUnaryRelation
extends java.lang.Object
implements Relation, UnaryRelation

Esta clase presenta una base reusable de relacion unaria. Permite asignarle una algoritmo. Realiza la ejecucion de la la relacion de parametro para luego ejecutar el algoritmo. Ademas, se encarga de liberar la tabla anonima generada por la relacion de parametro.

Author:
Hernan Rancati
 

Field Summary
protected  UnaryAlgorithm algorithm
           
 
Constructor Summary
AbstractUnaryRelation(Relation r)
          Construye una relacion unaria con la relacion r de parametro.
 
Method Summary
 Algorithm algorithm()
          Devuelve el algoritmo a usar.
 void algorithm(Algorithm a)
          Asigna un algoritmo para la relacion unaria.
abstract  java.lang.Object clone()
          Clona la relacion.
 boolean hasChanged()
          Indica si se realizaro alguna modifiaccion en la relacion.
 void perform(Relation.Context c)
          Ejecuta la relacion sobre el contexto dado (el contexto permite asignar la tabla de resultado).
 Relation relation()
          Devuelve la relacion de parametro asignada.
 void relation(Relation inner)
          Setea la relacion interior.
 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
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

algorithm

protected UnaryAlgorithm algorithm
Constructor Detail

AbstractUnaryRelation

public AbstractUnaryRelation(Relation r)
Construye una relacion unaria con la relacion r de parametro.

Method Detail

relation

public Relation relation()
Devuelve la relacion de parametro asignada.

Specified by:
relation in interface UnaryRelation
Returns:
la relacionsobre la que se trabaja.

relation

public void relation(Relation inner)
Description copied from interface: UnaryRelation
Setea la relacion interior.

Specified by:
relation in interface UnaryRelation
Parameters:
inner - - la nueva realcion interior.

algorithm

public Algorithm algorithm()
Devuelve el algoritmo a usar.

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

algorithm

public void algorithm(Algorithm a)
Asigna un algoritmo para la relacion unaria.

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

perform

public void perform(Relation.Context c)
Description copied from interface: Relation
Ejecuta la relacion sobre el contexto dado (el contexto permite asignar la tabla de resultado).

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

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.

clone

public abstract java.lang.Object clone()
Description copied from interface: UnaryRelation
Clona la relacion.

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

setContext

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

Specified by:
setContext in interface Relation