Package org.geotools.jdbc
Class PreparedFilterToSQL
- Object
-
- FilterToSQL
-
- PreparedFilterToSQL
-
- All Implemented Interfaces:
ExpressionVisitor
,FilterVisitor
- Direct Known Subclasses:
DB2FilterToSQL
,GeoPkgFilterToSQL
,H2GISPSFilterToSql
,HanaFilterToSQL
,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 viagetLiteralValues()
andgetLiteralTypes()
.- Author:
- Justin Deoliveira, OpenGEO, Andrea Aime, OpenGEO
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class FilterToSQL
FilterToSQL.FieldEncoder
-
-
Field Summary
Fields Modifier and Type Field Description protected List<AttributeDescriptor>
descriptors
protected PreparedStatementSQLDialect
dialect
protected List<Integer>
dimensions
protected List<Class>
literalTypes
protected List<Object>
literalValues
ordered list of literal values encountered and their typesprotected List<Integer>
SRIDs
-
Fields inherited from class FilterToSQL
capabilities, currentDimension, currentGeometry, currentSRID, databaseSchema, encodingFunction, escapeBackslash, featureType, fieldEncoder, filterFactory, inEncodingEnabled, inline, IO_ERROR, LOGGER, out, primaryKey, sqlNameEscape
-
-
Constructor Summary
Constructors Constructor Description PreparedFilterToSQL(Writer out)
PreparedFilterToSQL(PreparedStatementSQLDialect dialect)
Contructor taking a reference to the SQL dialect, will use it to encode geometry placeholders
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
convertEnvelopeToPolygon()
List<AttributeDescriptor>
getDescriptors()
Returns the attribute descriptors compared to a given literal (if any, not always available, normally only needed if arrays are involved)List<Integer>
getDimensions()
Returns the list of dimensions for each literal tha happens to be a geometry, or null otherwiseList<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 otherwiseboolean
isPrepareEnabled()
If true (default) a sql statement with literal placemarks is created, otherwise a normal statement is createdvoid
setPrepareEnabled(boolean prepareEnabled)
Object
visit(Literal expression, Object context)
Export the contents of a Literal ExpresionObject
visit(Id filter, Object extraData)
Encodes an Id filter-
Methods inherited from class FilterToSQL
cast, createFilterCapabilities, encode, encode, encodeBinaryComparisonOperator, encodeToString, encodeToString, escapeLiteral, escapeName, evaluateLiteral, getCapabilities, getDatabaseSchema, getDistanceInNativeUnits, getExpressionType, getFeatureType, getFunctionName, getFunctionReturnType, getParameter, getPrimaryKey, getSqlNameEscape, isBinaryExpression, isEscapeBackslash, isInEncodingEnabled, setCapabilities, setDatabaseSchema, setEscapeBackslash, setFeatureType, setFieldEncoder, setInEncodingEnabled, 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, visit, visitBinaryComparisonOperator, visitBinarySpatialOperator, visitBinarySpatialOperator, visitBinarySpatialOperator, visitBinaryTemporalOperator, visitBinaryTemporalOperator, visitBinaryTemporalOperator, visitInFunction, visitLiteralGeometry, visitLiteralTimePeriod, visitNullFilter, writeBinaryExpression, writeBinaryExpressionMember, writeLiteral
-
-
-
-
Field Detail
-
literalValues
protected List<Object> literalValues
ordered list of literal values encountered and their types
-
descriptors
protected List<AttributeDescriptor> descriptors
-
dialect
protected PreparedStatementSQLDialect dialect
-
-
Constructor Detail
-
PreparedFilterToSQL
public PreparedFilterToSQL(PreparedStatementSQLDialect dialect)
Contructor taking a reference to the SQL dialect, will use it to encode geometry placeholders
-
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
-
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 interfaceExpressionVisitor
- Overrides:
visit
in classFilterToSQL
- Parameters:
expression
- the Literal to export- Throws:
RuntimeException
- for io exception with writer
-
convertEnvelopeToPolygon
protected boolean convertEnvelopeToPolygon()
-
visit
public Object visit(Id filter, Object extraData)
Encodes an Id filter- Specified by:
visit
in interfaceFilterVisitor
- Overrides:
visit
in classFilterToSQL
- Parameters:
filter
- the- Throws:
RuntimeException
- If there's a problem writing output
-
getSRIDs
public List<Integer> getSRIDs()
Returns the list of native SRID for each literal that happens to be a geometry, or null otherwise
-
getDimensions
public List<Integer> getDimensions()
Returns the list of dimensions for each literal tha happens to be a geometry, or null otherwise
-
getDescriptors
public List<AttributeDescriptor> getDescriptors()
Returns the attribute descriptors compared to a given literal (if any, not always available, normally only needed if arrays are involved)
-
-