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
Literalis 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>descriptorsprotected PreparedStatementSQLDialectdialectprotected List<Integer>dimensionsprotected List<Class>literalTypesprotected List<Object>literalValuesordered 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 booleanconvertEnvelopeToPolygon()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 otherwisebooleanisPrepareEnabled()If true (default) a sql statement with literal placemarks is created, otherwise a normal statement is createdvoidsetPrepareEnabled(boolean prepareEnabled)Objectvisit(Literal expression, Object context)Export the contents of a Literal ExpresionObjectvisit(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, processLikeLeftOperand, 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:FilterToSQLExport the contents of a Literal Expresion- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin 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:
visitin interfaceFilterVisitor- Overrides:
visitin 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)
-
-