Package org.h2gis.geotools
Class H2GISFilterToSQL
- Object
-
- FilterToSQL
-
- H2GISFilterToSQL
-
- All Implemented Interfaces:
ExpressionVisitor,FilterVisitor
public class H2GISFilterToSQL extends FilterToSQL
jdbc-h2gis is an extension to connect H2GIS a spatial library that brings spatial support to the H2 Java database.H2GIS filter wrapper for H2GIS database.
- Author:
- Erwan Bocher
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class FilterToSQL
FilterToSQL.FieldEncoder
-
-
Field Summary
-
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 H2GISFilterToSQL()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Stringcast(String encodedProperty, Class target)Gives the opportunity to subclasses to force the property to the desired type.protected FilterCapabilitiescreateFilterCapabilities()Sets the capabilities of this filter.protected StringgetFunctionName(Function function)Maps the function to the native database function namevoidsetFunctionEncodingEnabled(boolean functionEncodingEnabled)Objectvisit(Function function, Object extraData)Writes sql for a function expression.protected ObjectvisitBinarySpatialOperator(BinarySpatialOperator filter, Expression e1, Expression e2, Object extraData)Handles the more general case of two generic expressions.protected ObjectvisitBinarySpatialOperator(BinarySpatialOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData)Handles the common case of a PropertyName,Literal geometry binary spatial operator.protected voidvisitLiteralGeometry(Literal expression)Subclasses must implement this method in order to encode geometry filters according to the specific database implementation-
Methods inherited from class FilterToSQL
encode, encode, encodeBinaryComparisonOperator, encodeToString, encodeToString, escapeLiteral, escapeName, evaluateLiteral, getCapabilities, getDatabaseSchema, getDistanceInNativeUnits, getExpressionType, getFeatureType, 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, visit, visitBinaryComparisonOperator, visitBinarySpatialOperator, visitBinaryTemporalOperator, visitBinaryTemporalOperator, visitBinaryTemporalOperator, visitInFunction, visitLiteralTimePeriod, visitNullFilter, writeBinaryExpression, writeBinaryExpressionMember, writeLiteral
-
-
-
-
Method Detail
-
visitLiteralGeometry
protected void visitLiteralGeometry(Literal expression) throws IOException
Description copied from class:FilterToSQLSubclasses must implement this method in order to encode geometry filters according to the specific database implementation- Overrides:
visitLiteralGeometryin classFilterToSQL- Throws:
IOException
-
createFilterCapabilities
protected FilterCapabilities createFilterCapabilities()
Description copied from class:FilterToSQLSets the capabilities of this filter.- Overrides:
createFilterCapabilitiesin classFilterToSQL- Returns:
- FilterCapabilities for this Filter
-
visitBinarySpatialOperator
protected Object visitBinarySpatialOperator(BinarySpatialOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData)
Description copied from class:FilterToSQLHandles the common case of a PropertyName,Literal geometry binary spatial operator.- Overrides:
visitBinarySpatialOperatorin classFilterToSQL
-
visitBinarySpatialOperator
protected Object visitBinarySpatialOperator(BinarySpatialOperator filter, Expression e1, Expression e2, Object extraData)
Description copied from class:FilterToSQLHandles the more general case of two generic expressions.The most common case is two PropertyName expressions, which happens during a spatial join.
- Overrides:
visitBinarySpatialOperatorin classFilterToSQL
-
visit
public Object visit(Function function, Object extraData) throws RuntimeException
Description copied from class:FilterToSQLWrites sql for a function expression. By default it will write the call by using the same arguments provided to the GeoTools function, subclasses should override on a case by case basis if this behavior is not the desired one.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classFilterToSQL- Parameters:
function- a function expression- Throws:
RuntimeException- If an IO error occurs.- See Also:
FilterToSQL.getFunctionName(Function)
-
getFunctionName
protected String getFunctionName(Function function)
Description copied from class:FilterToSQLMaps the function to the native database function name- Overrides:
getFunctionNamein classFilterToSQL
-
cast
protected String cast(String encodedProperty, Class target)
Description copied from class:FilterToSQLGives the opportunity to subclasses to force the property to the desired type. By default it simply writes out the property as-is (the property must be already escaped).- Overrides:
castin classFilterToSQL
-
setFunctionEncodingEnabled
public void setFunctionEncodingEnabled(boolean functionEncodingEnabled)
- Parameters:
functionEncodingEnabled-
-
-