Class GMLFilterFeature

  • All Implemented Interfaces:
    GMLHandlerJTS, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, XMLFilter, XMLReader

    public class GMLFilterFeature
    extends XMLFilterImpl
    implements GMLHandlerJTS
    LEVEL3 GML filter: translates JTS elements and attribute data into features.

    This filter simply reads in the events and coordinates passed to it by its GMLFilterDocument child and converts them into JTS objects. Note that it passes through anything not specifically sent to it by GMLFilterDocument (i.e. more or less everything not in geometry.xsd). The parent of this filter must implement GMLHandlerJTS in order to receive the JTS objects passed by this filter.

    Author:
    Rob Hranac, Vision for New York
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void characters​(char[] ch, int start, int length)
      Reads the only internal characters read by pure GML parsers, which are coordinates.
      void endElement​(String namespaceURI, String localName, String qName)
      Checks for GML element end and - if not a coordinates element - sends it directly on down the chain to the appropriate parent handler.
      void geometry​(Geometry geometry)
      Manages the start of a new main or sub geometry.
      void setSchema​(String uri)  
      void startElement​(String namespaceURI, String localName, String qName, Attributes atts)
      Checks for GML element start and - if not a coordinates element - sends it directly on down the chain to the appropriate parent handler.
      • 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
    • Constructor Detail

      • GMLFilterFeature

        public GMLFilterFeature​(GMLHandlerFeature parent)
        Constructor with parent, which must implement GMLHandlerJTS.
        Parameters:
        parent - The parent of this filter.
    • Method Detail

      • setSchema

        public void setSchema​(String uri)
      • geometry

        public void geometry​(Geometry geometry)
        Manages the start of a new main or sub geometry. This method looks at the status of the current handler and either returns a new sub-handler (if the last one was successfully returned already) or passes the element start notification along to the current handler as a sub geometry notice.
        Specified by:
        geometry in interface GMLHandlerJTS
        Parameters:
        geometry - The geometry from the child.
      • startElement

        public void startElement​(String namespaceURI,
                                 String localName,
                                 String qName,
                                 Attributes atts)
                          throws SAXException
        Checks for GML element start and - if not a coordinates element - sends it directly on down the chain to the appropriate parent handler. If it is a coordinates (or coord) element, it uses internal methods to set the current state of the coordinates reader appropriately.
        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 coordinates.
        TODO:
        HACK:The method for determining if something is a feature or not is too crude.
      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
                        throws SAXException
        Reads the only internal characters read by pure GML parsers, which are coordinates. These coordinates are sent to the coordinates reader class which interprets them appropriately, depending on the its current state.
        Specified by:
        characters in interface ContentHandler
        Overrides:
        characters in class XMLFilterImpl
        Parameters:
        ch - Raw coordinate string from the GML document.
        start - Beginning character position of raw coordinate 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 GML element end and - if not a coordinates element - sends it directly on down the chain to the appropriate parent handler. If it is a coordinates (or coord) element, it uses internal methods to set the current state of the coordinates reader appropriately.
        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.