Class FilterFilter

Object
XMLFilterImpl
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
  • Field Details

    • insideFilter

      protected boolean insideFilter
      Whether Whether we are currently processing a filter.
  • Constructor Details

    • 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 Details

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