Class SaxDigesterHandler

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

    public class SaxDigesterHandler
    extends org.xml.sax.helpers.DefaultHandler
    The SaxDigesterHandler use digesters to digest the elements in the xml. The digesters can be added using the addDigester(). By default the sequential digester list is used.
    Version:
    $Id: SaxDigesterHandler.java,v 1.3 2005/01/30 06:31:37 thlee Exp $ $Name: $
    Author:
    TiongHiang Lee (thlee@thinklient.org)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Map _digesters
      the map contains subdigesters
      private java.util.List _elementPath
      keep track of the path for current element
      private static java.util.logging.Logger _logger
      the logger *
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addDigester​(java.lang.String path, ElementDigester dig)
      Add a digester for the path
      void addDigester​(ElementDigester dig)
      Adding a digester to the root path
      void addSubDigester​(java.lang.String prefixPath, ElementDigester dig)
      Add a sub digester at a path of current path + prefixPath
      void addSubDigester​(ElementDigester dig)
      Add a subdigester to current element path
      private java.lang.String appendElementPath​(java.lang.String name)
      Append the name to the element path and return the new path string
      void characters​(char[] ch, int start, int length)
      void endDocument()
      void endElement​(java.lang.String uri, java.lang.String localName, java.lang.String qName)
      java.lang.String getCurrentPath()
      Get the current element path
      private ElementDigester getDigester​(java.lang.String path)
      Get the digester for particular path
      void parse​(java.io.InputStream stream)
      Parse an input
      private java.lang.String removeElementPath​(java.lang.String qname)
      Remove the element path
      private void startDigest​(java.lang.String path, org.xml.sax.Attributes attr)
      Call start of particular element digester, if there's any
      void startDocument()
      void startElement​(java.lang.String namespaceURI, java.lang.String lName, java.lang.String qName, org.xml.sax.Attributes attrs)
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _logger

        private static final java.util.logging.Logger _logger
        the logger *
      • _digesters

        private java.util.Map _digesters
        the map contains subdigesters
      • _elementPath

        private java.util.List _elementPath
        keep track of the path for current element
    • Constructor Detail

      • SaxDigesterHandler

        public SaxDigesterHandler()
        Constructor
    • Method Detail

      • addDigester

        public void addDigester​(ElementDigester dig)
        Adding a digester to the root path
        Parameters:
        dig - the digester
      • addDigester

        public void addDigester​(java.lang.String path,
                                ElementDigester dig)
        Add a digester for the path
        Parameters:
        path - the path
        dig - the digester
      • addSubDigester

        public void addSubDigester​(ElementDigester dig)
        Add a subdigester to current element path
        Parameters:
        dig - the digester
      • addSubDigester

        public void addSubDigester​(java.lang.String prefixPath,
                                   ElementDigester dig)
        Add a sub digester at a path of current path + prefixPath
        Parameters:
        prefixPath - the prefix path
        dig - the digester
      • appendElementPath

        private java.lang.String appendElementPath​(java.lang.String name)
        Append the name to the element path and return the new path string
        Parameters:
        name - the name of new element
        Returns:
        the new path string
      • characters

        public void characters​(char[] ch,
                               int start,
                               int length)
                        throws org.xml.sax.SAXException
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endDocument

        public void endDocument()
                         throws org.xml.sax.SAXException
        Specified by:
        endDocument in interface org.xml.sax.ContentHandler
        Overrides:
        endDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endElement

        public void endElement​(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • getCurrentPath

        public java.lang.String getCurrentPath()
        Get the current element path
        Returns:
        the path, or null if at start of document
      • getDigester

        private ElementDigester getDigester​(java.lang.String path)
        Get the digester for particular path
        Parameters:
        path - the path
        Returns:
        the digester, or null if there's none found
      • removeElementPath

        private java.lang.String removeElementPath​(java.lang.String qname)
        Remove the element path
        Parameters:
        qname - the element name is being removed
        Returns:
        the path string before the path is removed
      • startDocument

        public void startDocument()
                           throws org.xml.sax.SAXException
        Specified by:
        startDocument in interface org.xml.sax.ContentHandler
        Overrides:
        startDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • startDigest

        private void startDigest​(java.lang.String path,
                                 org.xml.sax.Attributes attr)
                          throws org.xml.sax.SAXException
        Call start of particular element digester, if there's any
        Parameters:
        attr - the attribute
        path - the path
        Throws:
        org.xml.sax.SAXException
      • startElement

        public void startElement​(java.lang.String namespaceURI,
                                 java.lang.String lName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attrs)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • parse

        public void parse​(java.io.InputStream stream)
                   throws javax.xml.parsers.ParserConfigurationException,
                          org.xml.sax.SAXException,
                          java.io.IOException
        Parse an input
        Parameters:
        stream - the stream
        Throws:
        javax.xml.parsers.ParserConfigurationException
        org.xml.sax.SAXException
        java.io.IOException