org.geotools.data.jdbc
Class DefaultSQLBuilder

Object
  extended by DefaultSQLBuilder
All Implemented Interfaces:
SQLBuilder
Direct Known Subclasses:
MySQLSQLBuilder, PostgisSQLBuilder

Deprecated. Use GeoAPISQLBuilder instead

public class DefaultSQLBuilder
extends Object
implements SQLBuilder

Builds a complete SQL query to select the specified attributes for the specified feature type, using a specified filter to generate a WHERE clause.

The actual WHERE clause is generated by the SQLEncoder class or appropriate subclass for a particular database. If a specific encoder is to be used, it must be specified to the constructor for this class.

In order to implement the functionality of the application-specified Filter, this is split into a 'preQueryFilter' which can be incorporated into the SQL query itself and a 'postQueryFilter. The encoder capabilities are used to determine how much of the function can be performed by the database directly and how much has to be performed on the result set.

Author:
Sean Geoghegan, Defence Science and Technology Organisation.
Module:
modules/library/jdbc   (gt2-jdbc.jar) (Maven report) (SVN head)

Field Summary
protected  ClientTransactionAccessor accessor
          Deprecated.  
protected  SQLEncoder encoder
          Deprecated.  
protected  FeatureType ft
          Deprecated.  
 
Constructor Summary
DefaultSQLBuilder()
          Deprecated. Constructs an instance of this class with a default SQLEncoder
DefaultSQLBuilder(SQLEncoder encoder)
          Deprecated.  
DefaultSQLBuilder(SQLEncoder encoder, FeatureType featureType, ClientTransactionAccessor accessor)
          Deprecated. Constructs an instance of this class using the encoder class specified.
 
Method Summary
 String buildSQLQuery(String typeName, FIDMapper mapper, AttributeType[] attrTypes, Filter filter)
          Deprecated. Constructs the full SQL SELECT statement for the supplied Filter.
 Filter getPostQueryFilter(Filter filter)
          Deprecated. Return the postQueryFilter that must be applied to the database query result set.
 Filter getPreQueryFilter(Filter filter)
          Deprecated. Return the preQueryFilter that can be used to generate the WHERE clause.
protected  void splitFilter(Filter filter)
          Deprecated.  
 void sqlColumns(StringBuffer sql, FIDMapper mapper, AttributeType[] attributes)
          Deprecated. Appends the names of the columns to be selected.
 void sqlFrom(StringBuffer sql, String typeName)
          Deprecated. Constructs the FROM clause for a featureType sql: FROM typeName
 void sqlGeometryColumn(StringBuffer sql, AttributeType geomAttribute)
          Deprecated. Generates the select column specification for a geometry column.
 void sqlOrderBy(StringBuffer sql, SortBy[] sortBy)
          Deprecated. Generates the order by clause.
 void sqlWhere(StringBuffer sql, Filter preFilter)
          Deprecated. Constructs WHERE clause, if needed, for FILTER.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

encoder

protected SQLEncoder encoder
Deprecated. 

ft

protected FeatureType ft
Deprecated. 

accessor

protected ClientTransactionAccessor accessor
Deprecated. 
Constructor Detail

DefaultSQLBuilder

public DefaultSQLBuilder()
Deprecated. 
Constructs an instance of this class with a default SQLEncoder


DefaultSQLBuilder

public DefaultSQLBuilder(SQLEncoder encoder)
Deprecated. 

Constructs an instance of this class using the encoder class specified. This will typically be from the getSqlBuilder method of a JDBCDataStore subclass.

This constructor should not be used to obtain Pre/Post filters, as these methods require a FeatureType to function properly.

Parameters:
encoder - the specific encoder to be used.

DefaultSQLBuilder

public DefaultSQLBuilder(SQLEncoder encoder,
                         FeatureType featureType,
                         ClientTransactionAccessor accessor)
Deprecated. 
Constructs an instance of this class using the encoder class specified. This will typically be from the getSqlBuilder method of a JDBCDataStore subclass.

Parameters:
encoder - the specific encoder to be used.
featureType -
accessor - client-side transaction handler; may be null.
Method Detail

getPostQueryFilter

public Filter getPostQueryFilter(Filter filter)
Deprecated. 
Return the postQueryFilter that must be applied to the database query result set.

Specified by:
getPostQueryFilter in interface SQLBuilder
Parameters:
filter - the application filter which must be applied
Returns:
the filter representing the functionality that must be performed on the result set.

getPreQueryFilter

public Filter getPreQueryFilter(Filter filter)
Deprecated. 
Return the preQueryFilter that can be used to generate the WHERE clause.

Specified by:
getPreQueryFilter in interface SQLBuilder
Parameters:
filter - the application filter which must be applied
Returns:
the filter representing the functionality that can be performed by the database.

splitFilter

protected void splitFilter(Filter filter)
Deprecated. 

sqlFrom

public void sqlFrom(StringBuffer sql,
                    String typeName)
Deprecated. 
Constructs the FROM clause for a featureType

sql: FROM typeName

Specified by:
sqlFrom in interface SQLBuilder
Parameters:
sql - the StringBuffer that the WHERE clause should be appended to
typeName - the name of the table (feature type) to be queried

sqlWhere

public void sqlWhere(StringBuffer sql,
                     Filter preFilter)
              throws SQLEncoderException
Deprecated. 
Constructs WHERE clause, if needed, for FILTER.

sql: WHERE filter encoding

Specified by:
sqlWhere in interface SQLBuilder
Parameters:
sql - The StringBuffer that the WHERE clause should be appended to
preFilter - The filter to be used by the encoder class to generate the WHERE clause
Throws:
SQLEncoderException - Not thrown here but may be thrown by the encoder

buildSQLQuery

public String buildSQLQuery(String typeName,
                            FIDMapper mapper,
                            AttributeType[] attrTypes,
                            Filter filter)
                     throws SQLEncoderException
Deprecated. 
Constructs the full SQL SELECT statement for the supplied Filter.

The statement is constructed by concatenating the SELECT column list, FROM table specification and WHERE clause appropriate to the supplied Filter.

Specified by:
buildSQLQuery in interface SQLBuilder
Parameters:
typeName - The name of the table (feature type) to be queried
mapper - FIDMapper to identify the FID columns in the table
attrTypes - The specific attribute columns to be selected
filter - The Filter that will be used by the encoder to construct the WHERE clause
Returns:
The fully formed SQL SELECT statement
Throws:
SQLEncoderException - Not thrown by this method but may be thrown by the encoder class

sqlColumns

public void sqlColumns(StringBuffer sql,
                       FIDMapper mapper,
                       AttributeType[] attributes)
Deprecated. 
Appends the names of the columns to be selected.

sqlGeometryColumn is invoked for any special handling for geometry columns.

Specified by:
sqlColumns in interface SQLBuilder
Parameters:
sql - StringBuffer to be appended to
mapper - FIDMapper to provide the name(s) of the FID columns
attributes - Array of columns to be selected
See Also:
postgisDataStore.SQLBuilder#sqlColumns(java.lang.StringBuffer, postgisDataStore.FIDMapper.FIDMapper, org.geotools.feature.AttributeType[])

sqlGeometryColumn

public void sqlGeometryColumn(StringBuffer sql,
                              AttributeType geomAttribute)
Deprecated. 
Generates the select column specification for a geometry column.

This should typically be overridden in the subclass to return a meaningful value that the attribute i/o handler can process.

Parameters:
sql - A StringBuffer that the column specification can be appended to
geomAttribute - An AttributeType for a geometry attribute

sqlOrderBy

public void sqlOrderBy(StringBuffer sql,
                       SortBy[] sortBy)
                throws SQLEncoderException
Deprecated. 
Generates the order by clause.

This uses the standard ASC,DESC sql keywords to denote ascending,descending sort respectivley.

Specified by:
sqlOrderBy in interface SQLBuilder
Throws:
SQLEncoderException


Copyright © 1996-2008 Geotools. All Rights Reserved.