org.geotools.data.jdbc
Interface SQLBuilder

All Known Implementing Classes:
DefaultSQLBuilder

public interface SQLBuilder

Provides an interface for SQL statement construction.

Currently just doing query building, but obviously this can be extended.

Author:
Sean Geoghegan, Defence Science and Technology Organisation.

Method Summary
 java.lang.String buildSQLQuery(java.lang.String typeName, FIDMapper mapper, AttributeType[] attrTypes, Filter filter)
          Makes an SQL Select statement.
 Filter getPostQueryFilter(Filter filter)
          Returns the Filter required for post processing.
 Filter getPreQueryFilter(Filter filter)
           
 void sqlColumns(java.lang.StringBuffer sql, FIDMapper mapper, AttributeType[] attributes)
          Produces the select information required.
 void sqlFrom(java.lang.StringBuffer sql, java.lang.String typeName)
          Consutrcts FROM clause for featureType sql: FROM typeName
 void sqlWhere(java.lang.StringBuffer sql, Filter preFilter)
          Constructs WHERE clause, if needed, for FILTER.
 

Method Detail

buildSQLQuery

public java.lang.String buildSQLQuery(java.lang.String typeName,
                                      FIDMapper mapper,
                                      AttributeType[] attrTypes,
                                      Filter filter)
                               throws SQLEncoderException
Makes an SQL Select statement. Constructs an SQL statement that will select the features from the table based on the filter. The default implementation creates a select statement for the table with the name typeName, selecting all the columns with the names in the attrTypes array using the filter as a WHERE clause. The default implementation ignores the maxFeature parameter since this requires DB dependant SQL. Subclasses can override this to provide the maxFeatures functionality specific to their DB.

Parameters:
attrTypes - The Attribute types for the select statement
filter - The filter to convert to a where statement.
Returns:
An SQL statement.
Throws:
SQLEncoderException - If an error occurs encoding the SQL

getPostQueryFilter

public Filter getPostQueryFilter(Filter filter)
Returns the Filter required for post processing.

The result will be null if no post processing is required.

This method is used by DefaultJDBCFeatureSource to see if the a Query can be optimized

Parameters:
filter -
Returns:
Filter requried for post processing, or null

getPreQueryFilter

public Filter getPreQueryFilter(Filter filter)

sqlColumns

public void sqlColumns(java.lang.StringBuffer sql,
                       FIDMapper mapper,
                       AttributeType[] attributes)
Produces the select information required.

The featureType, if known, is always requested.

sql: featureID (,attributeColumn)*

We may need to provide AttributeReaders with a hook so they can request a wrapper function.

Parameters:
sql -
attributes -

sqlFrom

public void sqlFrom(java.lang.StringBuffer sql,
                    java.lang.String typeName)
Consutrcts FROM clause for featureType

sql: FROM typeName

Parameters:
sql -

sqlWhere

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

sql: WHERE filter encoding

Throws:
SQLEncoderException


Copyright © GeoTools. All Rights Reserved.