Java Doc for FilterToSQL.java in  » GIS » GeoTools-2.4.1 » org » geotools » data » jdbc » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » GIS » GeoTools 2.4.1 » org.geotools.data.jdbc 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.geotools.data.jdbc.FilterToSQL

All known Subclasses:   org.geotools.data.db2.filter.SQLEncoderDB2,  org.geotools.data.geometryless.filter.SQLEncoderBBOX,  org.geotools.arcsde.filter.FilterToSQLSDE,  org.geotools.filter.UnaliasSQLEncoder,
FilterToSQL
public class FilterToSQL implements FilterVisitor,ExpressionVisitor(Code)
Encodes a filter into a SQL WHERE statement. It should hopefully be generic enough that any SQL database will work with it. This generic SQL encoder should eventually be able to encode all filters except Geometry Filters. This is because the OGC's SFS for SQL document specifies two ways of doing SQL databases, one with native geometry types and one without. To implement an encoder for one of the two types simply subclass off of this encoder and put in the proper GeometryFilter visit method. Then add the filter types supported to the capabilities by overriding the { FilterToSQL.createFilterCapabilities() method. This version was ported from the original to support org.opengis.filter type Filters.
author:
   originally by Chris Holmes, TOPP
author:
   ported by Saul Farber, MassGIS


Field Summary
final protected static  StringIO_ERROR
    
protected  FilterCapabilitiescapabilities
    
protected  FeatureTypefeatureType
    
protected  FIDMappermapper
    
protected  Writerout
     where to write the constructed string from visiting the filters.

Constructor Summary
public  FilterToSQL()
    
public  FilterToSQL(Writer out)
    

Method Summary
protected  FilterCapabilitiescreateFilterCapabilities()
     Sets the capabilities of this filter.
public  voidencode(Filter filter)
     Performs the encoding, sends the encoded sql to the writer passed in.
public  StringencodeToString(Filter filter)
     purely a convenience method.
public  StringescapeName(String name)
     Surrounds a name with the SQL escape character.
final public synchronized  FilterCapabilitiesgetCapabilities()
     Describes the capabilities of this encoder.

Performs lazy creation of capabilities.

If you're subclassing this class, override createFilterCapabilities to declare which filtercapabilities you support.
public  voidsetFIDMapper(FIDMapper mapper)
     Sets the FIDMapper that will be used in subsequente visit calls.
public  voidsetFeatureType(FeatureType featureType)
     Sets the featuretype the encoder is encoding sql for.

This is used for context for attribute expressions when encoding to sql.

public  voidsetSqlNameEscape(String escape)
     Sets the SQL name escape string.

The value of this string is prefixed and appended to table schema names, table names and column names in an SQL statement to support mixed-case and non-English names.

public  Objectvisit(ExcludeFilter filter, Object extraData)
    
public  Objectvisit(IncludeFilter filter, Object extraData)
    
public  Objectvisit(PropertyIsBetween filter, Object extraData)
     Writes the SQL for the PropertyIsBetween Filter.
public  Objectvisit(PropertyIsLike filter, Object extraData)
     Writes the SQL for the Like Filter.
public  Objectvisit(And filter, Object extraData)
    
public  Objectvisit(Not filter, Object extraData)
    
public  Objectvisit(Or filter, Object extraData)
    
protected  Objectvisit(BinaryLogicOperator filter, Object extraData)
     Common implementation for BinaryLogicOperator filters.
public  Objectvisit(PropertyIsEqualTo filter, Object extraData)
    
public  Objectvisit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)
    
public  Objectvisit(PropertyIsGreaterThan filter, Object extraData)
    
public  Objectvisit(PropertyIsLessThan filter, Object extraData)
    
public  Objectvisit(PropertyIsLessThanOrEqualTo filter, Object extraData)
    
public  Objectvisit(PropertyIsNotEqualTo filter, Object extraData)
    
public  Objectvisit(PropertyIsNull filter, Object extraData)
     Writes the SQL for the Null Filter.
public  Objectvisit(Id filter, Object extraData)
    
public  Objectvisit(BBOX filter, Object extraData)
    
public  Objectvisit(Beyond filter, Object extraData)
    
public  Objectvisit(Contains filter, Object extraData)
    
public  Objectvisit(Crosses filter, Object extraData)
    
public  Objectvisit(Disjoint filter, Object extraData)
    
public  Objectvisit(DWithin filter, Object extraData)
    
public  Objectvisit(Equals filter, Object extraData)
    
public  Objectvisit(Intersects filter, Object extraData)
    
public  Objectvisit(Overlaps filter, Object extraData)
    
public  Objectvisit(Touches filter, Object extraData)
    
public  Objectvisit(Within filter, Object extraData)
    
public  Objectvisit(PropertyName expression, Object extraData)
     Writes the SQL for the attribute Expression. NOTE: This (default) implementation doesn't handle XPath at all. Not sure exactly how to do that in a general way.
public  Objectvisit(Literal expression, Object context)
    
public  Objectvisit(Add expression, Object extraData)
    
public  Objectvisit(Divide expression, Object extraData)
    
public  Objectvisit(Multiply expression, Object extraData)
    
public  Objectvisit(Subtract expression, Object extraData)
    
protected  Objectvisit(BinaryExpression expression, Object extraData)
     Writes the SQL for the Math Expression.
public  Objectvisit(Function expression, Object extraData)
     Writes sql for a function expression.
public  Objectvisit(NilExpression expression, Object extraData)
    
protected  voidvisitBinaryComparisonOperator(BinaryComparisonOperator filter, Object extraData)
     Common implementation for BinaryComparisonOperator filters.
protected  ObjectvisitBinarySpatialOperator(BinarySpatialOperator filter, Object extraData)
    
protected  voidvisitLiteralGeometry(Literal expression)
    
public  ObjectvisitNullFilter(Object extraData)
     Encodes a null filter value.

Field Detail
IO_ERROR
final protected static String IO_ERROR(Code)
error message for exceptions



capabilities
protected FilterCapabilities capabilities(Code)
The filter types that this class can encode



featureType
protected FeatureType featureType(Code)
the schmema the encoder will be used to be encode sql for



mapper
protected FIDMapper mapper(Code)
the fid mapper used to encode the fid filters



out
protected Writer out(Code)
where to write the constructed string from visiting the filters.




Constructor Detail
FilterToSQL
public FilterToSQL()(Code)
Default constructor



FilterToSQL
public FilterToSQL(Writer out)(Code)




Method Detail
createFilterCapabilities
protected FilterCapabilities createFilterCapabilities()(Code)
Sets the capabilities of this filter. FilterCapabilities for this Filter



encode
public void encode(Filter filter) throws FilterToSQLException(Code)
Performs the encoding, sends the encoded sql to the writer passed in.
Parameters:
  filter - the Filter to be encoded.
throws:
  OpenGISFilterToOpenGISFilterToSQLEncoderException - If filter type not supported, or if therewere io problems.



encodeToString
public String encodeToString(Filter filter) throws FilterToSQLException(Code)
purely a convenience method. Equivalent to: StringWriter out = new StringWriter(); new FilterToSQL(out).encode(filter); out.getBuffer().toString();
Parameters:
  filter - a string representing the filter encoded to SQL.
throws:
  FilterToSQLException -



escapeName
public String escapeName(String name)(Code)
Surrounds a name with the SQL escape character.
Parameters:
  name - DOCUMENT ME!



getCapabilities
final public synchronized FilterCapabilities getCapabilities()(Code)
Describes the capabilities of this encoder.

Performs lazy creation of capabilities.

If you're subclassing this class, override createFilterCapabilities to declare which filtercapabilities you support. Don't use this method. The capabilities supported by this encoder.



setFIDMapper
public void setFIDMapper(FIDMapper mapper)(Code)
Sets the FIDMapper that will be used in subsequente visit calls. There must be a FIDMapper in order to invoke the FIDFilter encoder.
Parameters:
  mapper -



setFeatureType
public void setFeatureType(FeatureType featureType)(Code)
Sets the featuretype the encoder is encoding sql for.

This is used for context for attribute expressions when encoding to sql.


Parameters:
  featureType -



setSqlNameEscape
public void setSqlNameEscape(String escape)(Code)
Sets the SQL name escape string.

The value of this string is prefixed and appended to table schema names, table names and column names in an SQL statement to support mixed-case and non-English names. Without this, the DBMS may assume a mixed-case name in the query should be treated as upper-case and an SQLCODE of -204 or 206 may result if the name is not found.

Typically this is the double-quote character, ", but may not be for all databases.

For example, consider the following query:

SELECT Geom FROM Spear.ArchSites May be interpreted by the database as: SELECT GEOM FROM SPEAR.ARCHSITES If the column and table names were actually created using mixed-case, the query needs to be specified as: SELECT "Geom" from "Spear"."ArchSites"


Parameters:
  escape - the character to be used to escape database names



visit
public Object visit(ExcludeFilter filter, Object extraData)(Code)

See Also:    FilterVisitor.visit(ExcludeFilterObject)
See Also:   Writes the SQL for the IncludeFilter by writing "FALSE".
Parameters:
  the - filter to be visited



visit
public Object visit(IncludeFilter filter, Object extraData)(Code)

See Also:    FilterVisitor.visit(IncludeFilterObject)
See Also:   Writes the SQL for the IncludeFilter by writing "TRUE".
Parameters:
  the - filter to be visited



visit
public Object visit(PropertyIsBetween filter, Object extraData) throws RuntimeException(Code)
Writes the SQL for the PropertyIsBetween Filter.
Parameters:
  filter - the Filter to be visited.
throws:
  RuntimeException - for io exception with writer



visit
public Object visit(PropertyIsLike filter, Object extraData)(Code)
Writes the SQL for the Like Filter. Assumes the current java implemented wildcards for the Like Filter: . for multi and .? for single. And replaces them with the SQL % and _, respectively.
Parameters:
  filter - the Like Filter to be visited.



visit
public Object visit(And filter, Object extraData)(Code)
Write the SQL for an And filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(Not filter, Object extraData)(Code)
Write the SQL for a Not filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(Or filter, Object extraData)(Code)
Write the SQL for an Or filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
protected Object visit(BinaryLogicOperator filter, Object extraData)(Code)
Common implementation for BinaryLogicOperator filters. This way they're all handled centrally.
Parameters:
  filter - the logic statement to be turned into SQL.
Parameters:
  extraData - extra filter data. Not modified directly by this method.



visit
public Object visit(PropertyIsEqualTo filter, Object extraData)(Code)
Write the SQL for this kind of filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(PropertyIsGreaterThanOrEqualTo filter, Object extraData)(Code)
Write the SQL for this kind of filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(PropertyIsGreaterThan filter, Object extraData)(Code)
Write the SQL for this kind of filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(PropertyIsLessThan filter, Object extraData)(Code)
Write the SQL for this kind of filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(PropertyIsLessThanOrEqualTo filter, Object extraData)(Code)
Write the SQL for this kind of filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(PropertyIsNotEqualTo filter, Object extraData)(Code)
Write the SQL for this kind of filter
Parameters:
  filter - the filter to visit
Parameters:
  extraData - extra data (unused by this method)



visit
public Object visit(PropertyIsNull filter, Object extraData) throws RuntimeException(Code)
Writes the SQL for the Null Filter.
Parameters:
  filter - the null filter to be written to SQL.
throws:
  RuntimeException - for io exception with writer



visit
public Object visit(Id filter, Object extraData)(Code)
Encodes an Id filter
Parameters:
  filter - the
throws:
  RuntimeException - If there's a problem writing output



visit
public Object visit(BBOX filter, Object extraData)(Code)



visit
public Object visit(Beyond filter, Object extraData)(Code)



visit
public Object visit(Contains filter, Object extraData)(Code)



visit
public Object visit(Crosses filter, Object extraData)(Code)



visit
public Object visit(Disjoint filter, Object extraData)(Code)



visit
public Object visit(DWithin filter, Object extraData)(Code)



visit
public Object visit(Equals filter, Object extraData)(Code)



visit
public Object visit(Intersects filter, Object extraData)(Code)



visit
public Object visit(Overlaps filter, Object extraData)(Code)



visit
public Object visit(Touches filter, Object extraData)(Code)



visit
public Object visit(Within filter, Object extraData)(Code)



visit
public Object visit(PropertyName expression, Object extraData) throws RuntimeException(Code)
Writes the SQL for the attribute Expression. NOTE: This (default) implementation doesn't handle XPath at all. Not sure exactly how to do that in a general way. How to map from the XPATH of the property name into a column or something? Use propertyName.evaluate()?
Parameters:
  expression - the attribute to turn to SQL.
throws:
  RuntimeException - for io exception with writer



visit
public Object visit(Literal expression, Object context) throws RuntimeException(Code)
Export the contents of a Literal Expresion
Parameters:
  expression - the Literal to export
throws:
  RuntimeException - for io exception with writer



visit
public Object visit(Add expression, Object extraData)(Code)



visit
public Object visit(Divide expression, Object extraData)(Code)



visit
public Object visit(Multiply expression, Object extraData)(Code)



visit
public Object visit(Subtract expression, Object extraData)(Code)



visit
protected Object visit(BinaryExpression expression, Object extraData) throws RuntimeException(Code)
Writes the SQL for the Math Expression.
Parameters:
  expression - the Math phrase to be written.
throws:
  RuntimeException - for io problems



visit
public Object visit(Function expression, Object extraData) throws UnsupportedOperationException(Code)
Writes sql for a function expression. Not currently supported.
Parameters:
  expression - a function expression
throws:
  UnsupportedOperationException - every time, this isn't supported.



visit
public Object visit(NilExpression expression, Object extraData)(Code)



visitBinaryComparisonOperator
protected void visitBinaryComparisonOperator(BinaryComparisonOperator filter, Object extraData) throws RuntimeException(Code)
Common implementation for BinaryComparisonOperator filters. This way they're all handled centrally. DJB: note, postgis overwrites this implementation because of the way null is handled. This is for filters and filters are handled. They will come here with "property = null". NOTE: SELECT * FROM WHERE isnull; -- postgresql SELECT * FROM
WHERE isnull(); -- oracle???
Parameters:
  filter - the comparison to be turned into SQL.
throws:
  RuntimeException - for io exception with writer



visitBinarySpatialOperator
protected Object visitBinarySpatialOperator(BinarySpatialOperator filter, Object extraData)(Code)

See Also:    FilterVisitor.visit



visitLiteralGeometry
protected void visitLiteralGeometry(Literal expression) throws IOException(Code)
Subclasses must implement this method in order to encode geometry filters according to the specific database implementation
Parameters:
  expression -
throws:
  IOException - DOCUMENT ME!
throws:
  RuntimeException - DOCUMENT ME!



visitNullFilter
public Object visitNullFilter(Object extraData)(Code)
Encodes a null filter value. The current implementation does exactly nothing.
Parameters:
  extraData - extra data to be used to evaluate the filter the untouched extraData parameter



Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.