org.geotools.jdbc
Class PreparedFilterToSQL

Object
  extended by FilterToSQL
      extended by PreparedFilterToSQL
All Implemented Interfaces:
ExpressionVisitor, FilterVisitor
Direct Known Subclasses:
DB2FilterToSQL, OracleFilterToSQL, PostgisPSFilterToSql, TeradataFilterToSQL

public class PreparedFilterToSQL
extends FilterToSQL

Extension of FilterToSQL intended for use with prepared statements.

Each time a Literal is visited, a '?' is encoded, and the value and type of the literal are stored, available after the fact via getLiteralValues() and getLiteralTypes().

Author:
Justin Deoliveira, OpenGEO, Andrea Aime, OpenGEO

Nested Class Summary
 
Nested classes/interfaces inherited from class FilterToSQL
FilterToSQL.FieldEncoder
 
Field Summary
protected  PreparedStatementSQLDialect dialect
           
protected  List<Class> literalTypes
           
protected  List<Object> literalValues
          ordered list of literal values encountered and their types
protected  List<Integer> SRIDs
           
 
Fields inherited from class FilterToSQL
capabilities, currentGeometry, currentSRID, databaseSchema, encodingFunction, featureType, fieldEncoder, filterFactory, inline, IO_ERROR, mapper, out, primaryKey
 
Constructor Summary
PreparedFilterToSQL()
          Deprecated. Use PreparedFilterToSQL(PreparedStatementSQLDialect) instead
PreparedFilterToSQL(PreparedStatementSQLDialect dialect)
          Contructor taking a reference to the SQL dialect, will use it to encode geometry placeholders
PreparedFilterToSQL(Writer out)
           
 
Method Summary
 List<Class> getLiteralTypes()
           
 List<Object> getLiteralValues()
           
 List<Integer> getSRIDs()
          Returns the list of native SRID for each literal that happens to be a geometry, or null otherwise
 boolean isPrepareEnabled()
          If true (default) a sql statement with literal placemarks is created, otherwise a normal statement is created
 void setPrepareEnabled(boolean prepareEnabled)
           
 Object visit(Id filter, Object extraData)
          Encodes an Id filter
 Object visit(Literal expression, Object context)
          Export the contents of a Literal Expresion
 
Methods inherited from class FilterToSQL
cast, createFilterCapabilities, encode, encode, encodeToString, encodeToString, escapeName, evaluateLiteral, getCapabilities, getDatabaseSchema, getFIDMapper, getFunctionName, getParameter, getPrimaryKey, setCapabilities, setDatabaseSchema, setFeatureType, setFIDMapper, setFieldEncoder, setInline, setPrimaryKey, setSqlNameEscape, setWriter, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitBinaryComparisonOperator, visitBinarySpatialOperator, visitBinarySpatialOperator, visitBinarySpatialOperator, visitBinaryTemporalOperator, visitBinaryTemporalOperator, visitBinaryTemporalOperator, visitLiteralGeometry, visitLiteralTimePeriod, visitNullFilter, writeLiteral
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

literalValues

protected List<Object> literalValues
ordered list of literal values encountered and their types


literalTypes

protected List<Class> literalTypes

SRIDs

protected List<Integer> SRIDs

dialect

protected PreparedStatementSQLDialect dialect
Constructor Detail

PreparedFilterToSQL

public PreparedFilterToSQL()
Deprecated. Use PreparedFilterToSQL(PreparedStatementSQLDialect) instead

Default constructor


PreparedFilterToSQL

public PreparedFilterToSQL(PreparedStatementSQLDialect dialect)
Contructor taking a reference to the SQL dialect, will use it to encode geometry placeholders

Parameters:
dialect -

PreparedFilterToSQL

public PreparedFilterToSQL(Writer out)
Method Detail

isPrepareEnabled

public boolean isPrepareEnabled()
If true (default) a sql statement with literal placemarks is created, otherwise a normal statement is created

Returns:

setPrepareEnabled

public void setPrepareEnabled(boolean prepareEnabled)

visit

public Object visit(Literal expression,
                    Object context)
             throws RuntimeException
Description copied from class: FilterToSQL
Export the contents of a Literal Expresion

Specified by:
visit in interface ExpressionVisitor
Overrides:
visit in class FilterToSQL
Parameters:
expression - the Literal to export
Throws:
RuntimeException - for io exception with writer

visit

public Object visit(Id filter,
                    Object extraData)
Encodes an Id filter

Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL
Parameters:
filter - the
Throws:
RuntimeException - If there's a problem writing output

getLiteralValues

public List<Object> getLiteralValues()

getLiteralTypes

public List<Class> getLiteralTypes()

getSRIDs

public List<Integer> getSRIDs()
Returns the list of native SRID for each literal that happens to be a geometry, or null otherwise

Returns:


Copyright © 1996-2014 Geotools. All Rights Reserved.