Class RootXmlReadHandler

All Implemented Interfaces:
Serializable, Cloneable, Configuration, ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public abstract class RootXmlReadHandler extends FrontendDefaultHandler
A base root SAX handler.
See Also:
  • Field Details

    • currentHandlers

      private Stack currentHandlers
      The current handlers.
    • outerScopes

      private Stack outerScopes
      ??.
    • rootHandler

      private XmlReadHandler rootHandler
      The root handler.
    • objectRegistry

      private HashMap objectRegistry
      The object registry.
    • classToHandlerMapping

      private SimpleObjectFactory classToHandlerMapping
      Maps classes to handlers.
    • rootHandlerInitialized

      private boolean rootHandlerInitialized
  • Constructor Details

    • RootXmlReadHandler

      public RootXmlReadHandler()
      Creates a new root SAX handler.
  • Method Details

    • addDefaultMappings

      protected void addDefaultMappings()
      Adds the default mappings.
    • getFactoryLoader

      public abstract ObjectFactory getFactoryLoader()
      Returns the object factory.
      Returns:
      The object factory.
    • addManualMapping

      protected void addManualMapping(Class classToRead, Class handler)
      Adds a mapping between a class and the handler for the class.
      Parameters:
      classToRead - the class.
      handler - the handler class.
    • addMultiplexMapping

      protected void addMultiplexMapping(Class baseClass, String typeAttr, MultiplexMappingEntry[] mdef)
      Adds a multiplex mapping.
      Parameters:
      baseClass - the base class.
      typeAttr - the type attribute.
      mdef - the mapping entry.
    • setHelperObject

      public void setHelperObject(String key, Object value)
      Adds an object to the registry.
      Parameters:
      key - the key.
      value - the object.
    • getHelperObject

      public Object getHelperObject(String key)
      Returns an object from the registry.
      Parameters:
      key - the key.
      Returns:
      The object.
    • createHandler

      public XmlReadHandler createHandler(Class classToRead, String tagName, Attributes atts) throws XmlReaderException
      Creates a SAX handler for the specified class.
      Parameters:
      classToRead - the class.
      tagName - the tag name.
      atts - the attributes.
      Returns:
      a SAX handler.
      Throws:
      XmlReaderException - if there is a problem with the reader.
    • findHandlerForClass

      private XmlReadHandler findHandlerForClass(Class classToRead, Attributes atts, ArrayList history) throws XmlReaderException
      Finds a handler for the specified class.
      Parameters:
      classToRead - the class to be read.
      atts - the attributes.
      history - the history.
      Returns:
      A handler for the specified class.
      Throws:
      XmlReaderException - if there is a problem with the reader.
    • setRootHandler

      protected void setRootHandler(XmlReadHandler handler)
      Sets the root SAX handler.
      Parameters:
      handler - the SAX handler.
    • getRootHandler

      protected XmlReadHandler getRootHandler()
      Returns the root SAX handler.
      Returns:
      the root SAX handler.
    • recurse

      public void recurse(XmlReadHandler handler, String tagName, Attributes attrs) throws XmlReaderException, SAXException
      Start a new handler stack and delegate to another handler.
      Parameters:
      handler - the handler.
      tagName - the tag name.
      attrs - the attributes.
      Throws:
      XmlReaderException - if there is a problem with the reader.
      SAXException - if there is a problem with the parser.
    • delegate

      public void delegate(XmlReadHandler handler, String tagName, Attributes attrs) throws XmlReaderException, SAXException
      Delegate to another handler.
      Parameters:
      handler - the new handler.
      tagName - the tag name.
      attrs - the attributes.
      Throws:
      XmlReaderException - if there is a problem with the reader.
      SAXException - if there is a problem with the parser.
    • unwind

      public void unwind(String tagName) throws SAXException, XmlReaderException
      Hand control back to the previous handler.
      Parameters:
      tagName - the tagname.
      Throws:
      SAXException - if there is a problem with the parser.
      XmlReaderException - if there is a problem with the reader.
    • getCurrentHandler

      protected XmlReadHandler getCurrentHandler()
      Returns the current handler.
      Returns:
      The current handler.
    • startDocument

      public void startDocument() throws SAXException
      Starts processing a document.
      Specified by:
      startDocument in interface ContentHandler
      Overrides:
      startDocument in class DefaultHandler
      Throws:
      SAXException - not in this implementation.
    • startElement

      public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
      Starts processing an element.
      Specified by:
      startElement in interface ContentHandler
      Overrides:
      startElement in class DefaultHandler
      Parameters:
      uri - the URI.
      localName - the local name.
      qName - the qName.
      attributes - the attributes.
      Throws:
      SAXException - if there is a parsing problem.
    • characters

      public void characters(char[] ch, int start, int length) throws SAXException
      Process character data.
      Specified by:
      characters in interface ContentHandler
      Overrides:
      characters in class DefaultHandler
      Parameters:
      ch - the character buffer.
      start - the start index.
      length - the length of the character data.
      Throws:
      SAXException - if there is a parsing error.
    • endElement

      public void endElement(String uri, String localName, String qName) throws SAXException
      Finish processing an element.
      Specified by:
      endElement in interface ContentHandler
      Overrides:
      endElement in class DefaultHandler
      Parameters:
      uri - the URI.
      localName - the local name.
      qName - the qName.
      Throws:
      SAXException - if there is a parsing error.
    • loadHandlerClass

      protected XmlReadHandler loadHandlerClass(String className) throws XmlReaderException
      Loads the given class, and ignores all exceptions which may occur during the loading. If the class was invalid, null is returned instead.
      Parameters:
      className - the name of the class to be loaded.
      Returns:
      the class or null.
      Throws:
      XmlReaderException - if there is a reader error.
    • loadClass

      protected Class loadClass(String className) throws XmlReaderException
      Loads the given class, and ignores all exceptions which may occur during the loading. If the class was invalid, null is returned instead.
      Parameters:
      className - the name of the class to be loaded.
      Returns:
      the class or null.
      Throws:
      XmlReaderException - if there is a reader error.
    • getResult

      public Object getResult() throws SAXException
      Returns ???.
      Specified by:
      getResult in class FrontendDefaultHandler
      Returns:
      ???.
      Throws:
      SAXException - ???.