de.fuberlin.wiwiss.d2rq.algebra
Class MutableRelation

java.lang.Object
  extended by de.fuberlin.wiwiss.d2rq.algebra.MutableRelation
All Implemented Interfaces:
RelationalOperators

public class MutableRelation
extends Object
implements RelationalOperators

Wraps a relation and allows it to be modified by relational operators. Normally, applying an operator to a relation results in a new object. This is impractical in some places. The MutableRelation solves this problem.

Version:
$Id: MutableRelation.java,v 1.3 2006/11/02 21:15:43 cyganiak Exp $
Author:
Richard Cyganiak (richard@cyganiak.de)

Field Summary
static MutableRelation DUMMY
           
 
Constructor Summary
MutableRelation(Relation initialState)
           
 
Method Summary
 Relation immutableSnapshot()
           
 Relation renameColumns(ColumnRenamer renamer)
          Applies the rename operator to this relation.
 Relation select(Expression condition)
          Applies the selection operator to this relation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DUMMY

public static final MutableRelation DUMMY
Constructor Detail

MutableRelation

public MutableRelation(Relation initialState)
Method Detail

immutableSnapshot

public Relation immutableSnapshot()

renameColumns

public Relation renameColumns(ColumnRenamer renamer)
Description copied from interface: RelationalOperators

Applies the rename operator to this relation.

Renames of attributes that don't exist in the relation are ignored.

Specified by:
renameColumns in interface RelationalOperators
Parameters:
renamer - A map from original to replacement names
Returns:
A relation in which all occurrences of the old names have been replaced with the new ones

select

public Relation select(Expression condition)
Description copied from interface: RelationalOperators

Applies the selection operator to this relation. The new relation will contain only the tuples for which the expression evaluates to true.

Selection on attributes that don't exist in the relation are considered to be always false and will cause an empty relation.

Specified by:
select in interface RelationalOperators
Parameters:
condition - A boolean expression
Returns:
A relation whose tuples satisfy the condition