Class 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 Summary

      Fields 
      Modifier and Type Field Description
      protected boolean insideFilter
      Whether Whether we are currently processing a filter.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.