de.fuberlin.wiwiss.d2rq.sql
Class SelectStatementBuilder

java.lang.Object
  extended by de.fuberlin.wiwiss.d2rq.sql.SelectStatementBuilder

public class SelectStatementBuilder
extends Object

Collects parts of a SELECT query and delivers a corresponding SQL statement. Used within TripleResultSets.

Version:
$Id: SelectStatementBuilder.java,v 1.19 2006/09/15 19:36:44 cyganiak Exp $
Author:
Chris Bizer chris@bizer.de, Richard Cyganiak (richard@cyganiak.de)

Constructor Summary
SelectStatementBuilder(ConnectedDB database)
          TODO: Try if we can change parameters to (Relation, projectionColumns) and make immutable
 
Method Summary
 void addAliasMap(AliasMap newAliases)
           
 void addColumnValue(Attribute column, String value)
          Adds a WHERE clause to the query.
 void addColumnValues(Map columnsAndValues)
          Adds multiple WHERE clauses from a map.
 void addCondition(Expression condition)
          Adds a WHERE clause to the query.
 void addJoins(Set joins)
           
 void addRelation(Relation relation)
           
 void addSelectColumn(Attribute column)
          Adds a column to the SELECT part of the query.
 void addSelectColumns(Set columns)
          Adds a list of Attributes to the SELECT part of the query
 com.hp.hpl.jena.util.iterator.ClosableIterator execute()
           
 ConnectedDB getDatabase()
           
 String getSQLStatement()
           
 boolean isTrivial()
           
 void setEliminateDuplicates(boolean eliminateDuplicates)
          Sets if the SQL statement should eliminate duplicate rows ("SELECT DISTINCT").
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SelectStatementBuilder

public SelectStatementBuilder(ConnectedDB database)
TODO: Try if we can change parameters to (Relation, projectionColumns) and make immutable

Method Detail

addRelation

public void addRelation(Relation relation)

getDatabase

public ConnectedDB getDatabase()

isTrivial

public boolean isTrivial()

getSQLStatement

public String getSQLStatement()

addAliasMap

public void addAliasMap(AliasMap newAliases)

addSelectColumn

public void addSelectColumn(Attribute column)
Adds a column to the SELECT part of the query.

Parameters:
column - the column

addSelectColumns

public void addSelectColumns(Set columns)
Adds a list of Attributes to the SELECT part of the query

Parameters:
columns -

addColumnValue

public void addColumnValue(Attribute column,
                           String value)
Adds a WHERE clause to the query. Only records are selected where the column given as the first argument has the value given as second argument.

Parameters:
column - the column whose values are to be restricted
value - the value the column must have

addColumnValues

public void addColumnValues(Map columnsAndValues)
Adds multiple WHERE clauses from a map. The map keys are Attribute instances. The map values are the values for those columns.

Parameters:
columnsAndValues - a map containing columns and their values

addCondition

public void addCondition(Expression condition)
Adds a WHERE clause to the query.

Parameters:
condition - An SQL expression

addJoins

public void addJoins(Set joins)

setEliminateDuplicates

public void setEliminateDuplicates(boolean eliminateDuplicates)
Sets if the SQL statement should eliminate duplicate rows ("SELECT DISTINCT").

Parameters:
eliminateDuplicates - enable DISTINCT?

execute

public com.hp.hpl.jena.util.iterator.ClosableIterator execute()
Returns:
An iterator over ResultRows