org.geotools.filter
Class FilterFilter

Object
  extended by XMLFilterImpl
      extended by FilterFilter
All Implemented Interfaces:
GMLHandlerJTS, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, XMLFilter, XMLReader

public class FilterFilter
extends XMLFilterImpl
implements GMLHandlerJTS

Creates an OGC filter using a SAX filter.

Possibly the worst-named class of all time, FilterFilter extracts an OGC filter object from an XML stream and passes it to its parent as a fully instantiated OGC filter object.

Author:
Rob Hranac, Vision for New York
Module:
modules/library/main (gt-main.jar)

Field Summary
protected  boolean insideFilter
          Whether Whether we are currently processing a filter.
 
Constructor Summary
FilterFilter(FilterHandler parent, SimpleFeatureType schema)
          Constructor with parent, which must implement GMLHandlerJTS.
FilterFilter(FilterHandler parent, SimpleFeatureType schema, boolean convertLiteralToNumber)
          Constructor with parent, which must implement GMLHandlerJTS.
 
Method Summary
 void characters(char[] chars, int start, int length)
          Reads the only internal characters read by filters.
protected static short convertType(String filterType)
          Converts the string representation of the expression to the AbstractFilter or DefaultExpression short type.
 void endElement(String namespaceURI, String localName, String qName)
          Checks for filter element end and - if not a Filter then sends it directly to the appropriate filter factory.
 void geometry(Geometry geometry)
          Recieves a geometry from its child filter.
 void startElement(String namespaceURI, String localName, String qName, Attributes atts)
          Checks the name of the element, and sends to the appropriate filter creation factory.
 
Methods inherited from class XMLFilterImpl
endDocument, endPrefixMapping, error, fatalError, getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, getFeature, getParent, getProperty, ignorableWhitespace, notationDecl, parse, parse, processingInstruction, resolveEntity, setContentHandler, setDocumentLocator, setDTDHandler, setEntityResolver, setErrorHandler, setFeature, setParent, setProperty, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface ContentHandler
endDocument, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping
 

Field Detail

insideFilter

protected boolean insideFilter
Whether Whether we are currently processing a filter.

Constructor Detail

FilterFilter

public FilterFilter(FilterHandler parent,
                    SimpleFeatureType schema)
Constructor with parent, which must implement GMLHandlerJTS.

Parameters:
parent - The parent of this filter, to recieve the filters created.
schema - The schema that the filter will be used against.

FilterFilter

public FilterFilter(FilterHandler parent,
                    SimpleFeatureType schema,
                    boolean convertLiteralToNumber)
Constructor with parent, which must implement GMLHandlerJTS.

Parameters:
parent - The parent of this filter, to recieve the filters created.
schema - The schema that the filter will be used against.
Method Detail

startElement

public void startElement(String namespaceURI,
                         String localName,
                         String qName,
                         Attributes atts)
                  throws SAXException
Checks the name of the element, and sends to the appropriate filter creation factory.

Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class XMLFilterImpl
Parameters:
namespaceURI - The namespace of the element.
localName - The local name of the element.
qName - The full name of the element, including namespace prefix.
atts - The element attributes.
Throws:
SAXException - Some parsing error occured while reading filter.

characters

public void characters(char[] chars,
                       int start,
                       int length)
                throws SAXException
Reads the only internal characters read by filters. If we are in a distance filter than the distance is set in the filter factory, if not we forward directly along to the expression factory.

Specified by:
characters in interface ContentHandler
Overrides:
characters in class XMLFilterImpl
Parameters:
chars - Raw coordinate string from the filter document.
start - Beginning character position of raw string.
length - Length of the character string.
Throws:
SAXException - Some parsing error occurred while reading coordinates.

endElement

public void endElement(String namespaceURI,
                       String localName,
                       String qName)
                throws SAXException
Checks for filter element end and - if not a Filter then sends it directly to the appropriate filter factory.

Specified by:
endElement in interface ContentHandler
Overrides:
endElement in class XMLFilterImpl
Parameters:
namespaceURI - Namespace of the element.
localName - Local name of the element.
qName - Full name of the element, including namespace prefix.
Throws:
SAXException - Parsing error occurred while reading coordinates.

geometry

public void geometry(Geometry geometry)
              throws RuntimeException
Recieves a geometry from its child filter.

Specified by:
geometry in interface GMLHandlerJTS
Parameters:
geometry - The geometry from the filter.
Throws:
RuntimeException - if the filterFactory can't handle the geometry
TODO:
REVISIT: can we throw another exception?

convertType

protected static short convertType(String filterType)
Converts the string representation of the expression to the AbstractFilter or DefaultExpression short type.

Parameters:
filterType - Type of filter for check.
Returns:
the short representation of the filter.


Copyright © 1996-2010 Geotools. All Rights Reserved.