org.geotools.data.db2.filter
Class SQLEncoderDB2

Object
  extended by FilterToSQL
      extended by SQLEncoderDB2
All Implemented Interfaces:
ExpressionVisitor, FilterVisitor

public class SQLEncoderDB2
extends FilterToSQL

Generate a WHERE clause for DB2 Spatial Extender based on a spatial filter.

The following spatial filter operations are supported:

Author:
David Adler - IBM Corporation
Module:
modules/plugin/db2 (gt-db2.jar)

Field Summary
 
Fields inherited from class FilterToSQL
capabilities, encodingFunction, featureType, IO_ERROR, mapper, out
 
Constructor Summary
SQLEncoderDB2()
          Construct an SQLEncoderDB2
 
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()
           
 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.
 void setSRID(int srid)
          Set the value of the srid value to be used if a DB2 Spatial Extender geometry needs to be constructed.
 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(Id filter, Object extraData)
          Encodes an FidFilter.
 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 FilterToSQL
encode, encode, encodeToString, encodeToString, escapeName, evaluateLiteral, getCapabilities, getFIDMapper, setCapabilities, setFeatureType, setFIDMapper, setSqlNameEscape, setWriter, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitBinaryComparisonOperator, visitNullFilter, writeLiteral
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SQLEncoderDB2

public SQLEncoderDB2()
Construct an SQLEncoderDB2

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.

setSRID

public void setSRID(int srid)
Set the value of the srid value to be used if a DB2 Spatial Extender geometry needs to be constructed.

This is specifically the DB2 Spatial Extender spatial reference system identifier and not a coordinate system identifier ala EPSG.

Parameters:
srid - Spatial reference system identifier to be used.

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(Id filter,
                    Object extraData)
Encodes an FidFilter.

Specified by:
visit in interface FilterVisitor
Overrides:
visit in class FilterToSQL
Parameters:
filter -
Throws:
RuntimeException - DOCUMENT ME!
See Also:
SQLEncoder.visit(org.geotools.filter.FidFilter)

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
See Also:
FilterVisitor#visit()}

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".


Copyright © 1996-2009 Geotools. All Rights Reserved.