|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.fuberlin.wiwiss.d2rq.find.SQLStatementMaker
Collects parts of a SELECT query and delivers a corresponding SQL statement. Used within TripleResultSets.
History:
06-07-2004: Initial version of this class.
08-03-2004: Higher-level operations added (addColumnValues etc.)
Field Summary | |
protected java.util.Map |
aliasMap
|
private java.util.Map |
columnNameNumber
Maps column names from the database to columns numbers in the result set. |
private Database |
database
|
private boolean |
eliminateDuplicates
|
private static java.util.regex.Pattern |
escapePattern
|
private static java.lang.String |
escapeReplacement
|
protected java.util.Collection |
referedTables
|
private int |
selectColumnCount
|
private java.util.List |
sqlSelect
|
private java.util.List |
sqlWhere
|
Constructor Summary | |
SQLStatementMaker(Database database)
|
Method Summary | |
void |
addAliasMap(java.util.Map m)
|
void |
addColumnRenames(java.util.Map renamedColumns)
Make columns accessible through their old, pre-renaming names. |
void |
addColumnValue(Column column,
java.lang.String value)
Adds a WHERE clause to the query. |
void |
addColumnValues(java.util.Map columnsAndValues)
Adds multiple WHERE clauses from a map. |
void |
addConditions(java.util.Set conditions)
Adds multiple WHERE clauses to the query. |
void |
addJoins(java.util.Set joins)
|
void |
addSelectColumn(Column column)
Adds a column to the SELECT part of the query. |
void |
addSelectColumns(java.util.Set columns)
Adds a list of Column s to the SELECT part of the query |
int |
columnType(Column column)
|
java.lang.String |
correctlyQuotedColumnValue(Column column,
java.lang.String value)
|
static java.lang.String |
escape(java.lang.String s)
Escape special characters in database literals to avoid SQL injection |
java.util.Map |
getColumnNameNumberMap()
|
Database |
getDatabase()
|
private static java.lang.String |
getQuotedColumnValue(java.lang.String value,
int columnType)
|
java.lang.String |
getSQLStatement()
|
private void |
referColumn(Column c)
|
private void |
referColumns(java.util.Collection columns)
|
private void |
referTable(java.lang.String tableName)
|
void |
setEliminateDuplicates(boolean eliminateDuplicates)
Sets if the SQL statement should eliminate duplicate rows ("SELECT DISTINCT"). |
private static java.lang.String |
sqlFromExpression(java.util.Collection referedTables,
java.util.Map aliasMap)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private static final java.util.regex.Pattern escapePattern
private static final java.lang.String escapeReplacement
private Database database
private java.util.List sqlSelect
private java.util.List sqlWhere
private java.util.Map columnNameNumber
private int selectColumnCount
private boolean eliminateDuplicates
protected java.util.Map aliasMap
protected java.util.Collection referedTables
Constructor Detail |
public SQLStatementMaker(Database database)
Method Detail |
public Database getDatabase()
public java.lang.String getSQLStatement()
public void addAliasMap(java.util.Map m)
private void referTable(java.lang.String tableName)
private void referColumn(Column c)
private void referColumns(java.util.Collection columns)
public void addSelectColumn(Column column)
column
- the columnpublic void addSelectColumns(java.util.Set columns)
Column
s to the SELECT part of the query
columns
- public void addColumnValue(Column column, java.lang.String value)
column
- the column whose values are to be restrictedvalue
- the value the column must havepublic java.lang.String correctlyQuotedColumnValue(Column column, java.lang.String value)
public int columnType(Column column)
public void addColumnValues(java.util.Map columnsAndValues)
Column
instances. The map values are the values
for those columns.
columnsAndValues
- a map containing columns and their valuespublic void addConditions(java.util.Set conditions)
conditions
- a set of Strings containing SQL WHERE clausespublic void addJoins(java.util.Set joins)
public void addColumnRenames(java.util.Map renamedColumns)
renamedColumns
- public void setEliminateDuplicates(boolean eliminateDuplicates)
eliminateDuplicates
- enable DISTINCT?public java.util.Map getColumnNameNumberMap()
private static java.lang.String getQuotedColumnValue(java.lang.String value, int columnType)
public static java.lang.String escape(java.lang.String s)
private static java.lang.String sqlFromExpression(java.util.Collection referedTables, java.util.Map aliasMap)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |