org.geotools.data.db2
Class DB2FilterToSQL

Object
  extended by FilterToSQL
      extended by PreparedFilterToSQL
          extended by DB2FilterToSQL
All Implemented Interfaces:
ExpressionVisitor, 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:

Author:
Mueller Christian
Module:
modules/plugin/jdbc-db2 (gt-jdbc-db2.jar)

Field Summary
 
Fields inherited from class PreparedFilterToSQL
dialect, literalTypes, literalValues, SRIDs
 
Fields inherited from class FilterToSQL
capabilities, currentGeometry, currentSRID, databaseSchema, encodingFunction, featureType, IO_ERROR, mapper, out, primaryKey
 
Constructor Summary
DB2FilterToSQL(PreparedStatementSQLDialect dialect)
           
DB2FilterToSQL(Writer out)
           
 
Method Summary
protected  void addSelectivity()
           
protected  FilterCapabilities createFilterCapabilities()
          Sets the DB2 filter capabilities.
 String db2Geom(Geometry geom)
          Construct a geometry from the WKT representation of a geometry
 HashMap getPredicateMap()
           
 boolean isLooseBBOXEnabled()
           
 void setLooseBBOXEnabled(boolean looseBBOXEnabled)
           
 void setSelectivityClause(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.
 Object visit(BBOX filter, Object extraData)
           
 Object visit(Beyond filter, Object extraData)
           
 Object visit(Contains filter, Object extraData)
           
 Object visit(Crosses filter, Object extraData)
           
 Object visit(Disjoint filter, Object extraData)
           
 Object visit(DWithin filter, Object extraData)
           
 Object visit(Equals filter, Object extraData)
           
 Object visit(ExcludeFilter filter, Object extraData)
           
 Object visit(IncludeFilter filter, Object extraData)
           
 Object visit(Intersects filter, Object extraData)
           
 Object visit(Overlaps filter, Object extraData)
           
 Object visit(Touches filter, Object extraData)
           
 Object visit(Within filter, Object extraData)
           
protected  Object visitBinarySpatialOperator(BinarySpatialOperator filter, Object extraData)
           
protected  Object visitBinarySpatialOperator(BinarySpatialOperator filter, Object extraData, String db2Predicate)
           
 void visitLiteralGeometry(Literal expression)
          Construct the appropriate geometry type from the WKT representation of a literal expression
 
Methods inherited from class PreparedFilterToSQL
getLiteralTypes, getLiteralValues, getSRIDs, isPrepareEnabled, setPrepareEnabled, visit, visit
 
Methods inherited from class 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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DB2FilterToSQL

public DB2FilterToSQL(PreparedStatementSQLDialect dialect)

DB2FilterToSQL

public DB2FilterToSQL(Writer out)
Method Detail

getPredicateMap

public HashMap getPredicateMap()

db2Geom

public String db2Geom(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(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 Object visit(DWithin filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Beyond filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visitBinarySpatialOperator

protected Object visitBinarySpatialOperator(BinarySpatialOperator filter,
                                            Object extraData)
Overrides:
visitBinarySpatialOperator in class FilterToSQL

visitBinarySpatialOperator

protected Object visitBinarySpatialOperator(BinarySpatialOperator filter,
                                            Object extraData,
                                            String db2Predicate)

visit

public Object visit(BBOX filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Contains filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Crosses filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Disjoint filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Equals filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Intersects filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Overlaps filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Touches filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visit

public Object visit(Within filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL

visitLiteralGeometry

public void visitLiteralGeometry(Literal expression)
                          throws 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:
IOException - Passes back exception if generated by this.out.write()

addSelectivity

protected void addSelectivity()
                       throws IOException
Throws:
IOException

visit

public Object visit(ExcludeFilter filter,
                    Object extraData)
Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL
See Also:
FilterVisitor#visit(ExcludeFilter, Object)} Writes the SQL for the IncludeFilter by writing "FALSE".

visit

public Object visit(IncludeFilter filter,
                    Object extraData)
Specified by:
visit in interface 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.