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.

Author:
Richard Cyganiak (richard@cyganiak.de)

Field Summary
 
Fields inherited from interface de.fuberlin.wiwiss.d2rq.algebra.RelationalOperators
DUMMY
 
Constructor Summary
MutableRelation(Relation initialState)
           
 
Method Summary
 Relation empty()
           
 Relation immutableSnapshot()
           
 Relation limit(int limit)
           
 Relation orderBy(List<OrderSpec> orderSpecs)
           
 Relation project(Set<? extends ProjectionSpec> projectionSpecs)
          Applies the projection operator to this relation.
 Relation renameColumns(ColumnRenamer renamer)
          Applies the rename operator to this relation.
 Relation select(Expression condition)
          Applies the selection operator to this relation.
 Relation swapLimits()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

empty

public Relation empty()

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

orderBy

public Relation orderBy(List<OrderSpec> orderSpecs)

swapLimits

public Relation swapLimits()

project

public Relation project(Set<? extends ProjectionSpec> projectionSpecs)
Description copied from interface: RelationalOperators

Applies the projection operator to this relation.

The new relation will contain only the attributes given as the argument.

Specified by:
project in interface RelationalOperators
Parameters:
projectionSpecs - A set of ProjectionSpec instances
Returns:
A relation having the specified attributes

limit

public Relation limit(int limit)