org.geotools.data.db2
Class DB2FilterToSQL
java.lang.Object
org.geotools.data.jdbc.FilterToSQL
org.geotools.jdbc.PreparedFilterToSQL
org.geotools.data.db2.DB2FilterToSQL
- All Implemented Interfaces:
- org.opengis.filter.expression.ExpressionVisitor, org.opengis.filter.FilterVisitor
public class DB2FilterToSQL
- extends PreparedFilterToSQL
Generate a WHERE clause for DB2 Spatial Extender based on a spatial filter.
The following spatial filter operations are supported:
-
GEOMETRY_BBOX
-
GEOMETRY_CONTAINS
-
GEOMETRY_CROSSES
-
GEOMETRY_DISJOINT
-
GEOMETRY_EQUALS
-
GEOMETRY_INTERSECTS
-
GEOMETRY_OVERLAPS
-
GEOMETRY_TOUCHES
-
GEOMETRY_WITHIN
-
GEOMETRY_DWITHIN
- Author:
- Mueller Christian
Method Summary |
protected void |
addSelectivity()
|
protected FilterCapabilities |
createFilterCapabilities()
Sets the DB2 filter capabilities. |
java.lang.String |
db2Geom(com.vividsolutions.jts.geom.Geometry geom)
Construct a geometry from the WKT representation of a geometry |
java.util.HashMap |
getPredicateMap()
|
boolean |
isLooseBBOXEnabled()
|
void |
setLooseBBOXEnabled(boolean looseBBOXEnabled)
|
void |
setSelectivityClause(java.lang.String string)
Sets a SELECTIVITY clause that can be included with the spatial
predicate to influence the query optimizer to exploit a spatial index
if it exists. |
java.lang.Object |
visit(org.opengis.filter.spatial.BBOX filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Beyond filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Contains filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Crosses filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Disjoint filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.DWithin filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Equals filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.ExcludeFilter filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.IncludeFilter filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Intersects filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Overlaps filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Touches filter,
java.lang.Object extraData)
|
java.lang.Object |
visit(org.opengis.filter.spatial.Within filter,
java.lang.Object extraData)
|
protected java.lang.Object |
visitBinarySpatialOperator(org.opengis.filter.spatial.BinarySpatialOperator filter,
java.lang.Object extraData)
|
protected java.lang.Object |
visitBinarySpatialOperator(org.opengis.filter.spatial.BinarySpatialOperator filter,
java.lang.Object extraData,
java.lang.String db2Predicate)
|
void |
visitLiteralGeometry(org.opengis.filter.expression.Literal expression)
Construct the appropriate geometry type from the WKT representation of a literal
expression |
Methods inherited from class org.geotools.data.jdbc.FilterToSQL |
encode, encode, encodeToString, encodeToString, escapeName, evaluateLiteral, getCapabilities, getDatabaseSchema, getFIDMapper, getPrimaryKey, setCapabilities, setDatabaseSchema, setFeatureType, setFIDMapper, setPrimaryKey, setSqlNameEscape, setWriter, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitBinaryComparisonOperator, visitBinarySpatialOperator, visitNullFilter, writeLiteral |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DB2FilterToSQL
public DB2FilterToSQL(PreparedStatementSQLDialect dialect)
DB2FilterToSQL
public DB2FilterToSQL(java.io.Writer out)
getPredicateMap
public java.util.HashMap getPredicateMap()
db2Geom
public java.lang.String db2Geom(com.vividsolutions.jts.geom.Geometry geom)
- Construct a geometry from the WKT representation of a geometry
- Parameters:
geom
- the constructor for the geometry.
createFilterCapabilities
protected FilterCapabilities createFilterCapabilities()
- Sets the DB2 filter capabilities.
- Overrides:
createFilterCapabilities
in class FilterToSQL
- Returns:
- FilterCapabilities for DB2
setSelectivityClause
public void setSelectivityClause(java.lang.String string)
- Sets a SELECTIVITY clause that can be included with the spatial
predicate to influence the query optimizer to exploit a spatial index
if it exists.
The parameter should be of the form:
"SELECTIVITY 0.001"
where the numeric value is the fraction of rows that will be returned
by using the index scan. This doesn't have to be true. The value
0.001 is typically used to force the use of the spatial in all cases if
the spatial index exists.
- Parameters:
string
- a selectivity clause
visit
public java.lang.Object visit(org.opengis.filter.spatial.DWithin filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Beyond filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visitBinarySpatialOperator
protected java.lang.Object visitBinarySpatialOperator(org.opengis.filter.spatial.BinarySpatialOperator filter,
java.lang.Object extraData)
- Overrides:
visitBinarySpatialOperator
in class FilterToSQL
visitBinarySpatialOperator
protected java.lang.Object visitBinarySpatialOperator(org.opengis.filter.spatial.BinarySpatialOperator filter,
java.lang.Object extraData,
java.lang.String db2Predicate)
visit
public java.lang.Object visit(org.opengis.filter.spatial.BBOX filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Contains filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Crosses filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Disjoint filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Equals filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Intersects filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Overlaps filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Touches filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visit
public java.lang.Object visit(org.opengis.filter.spatial.Within filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
visitLiteralGeometry
public void visitLiteralGeometry(org.opengis.filter.expression.Literal expression)
throws java.io.IOException
- Construct the appropriate geometry type from the WKT representation of a literal
expression
- Overrides:
visitLiteralGeometry
in class FilterToSQL
- Parameters:
expression
- the expression turn into a geometry constructor.
- Throws:
java.io.IOException
- Passes back exception if generated by
this.out.write()
addSelectivity
protected void addSelectivity()
throws java.io.IOException
- Throws:
java.io.IOException
visit
public java.lang.Object visit(org.opengis.filter.ExcludeFilter filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
- See Also:
FilterVisitor#visit(ExcludeFilter, Object)}
Writes the SQL for the IncludeFilter by writing "FALSE".
visit
public java.lang.Object visit(org.opengis.filter.IncludeFilter filter,
java.lang.Object extraData)
- Specified by:
visit
in interface org.opengis.filter.FilterVisitor
- Overrides:
visit
in class FilterToSQL
- See Also:
FilterVisitor#visit(IncludeFilter, Object)}
Writes the SQL for the IncludeFilter by writing "TRUE".
isLooseBBOXEnabled
public boolean isLooseBBOXEnabled()
setLooseBBOXEnabled
public void setLooseBBOXEnabled(boolean looseBBOXEnabled)
Copyright © 1996-2010 Geotools. All Rights Reserved.