Class MultiplexRootElementHandler

java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.pentaho.reporting.libraries.xmlns.parser.RootXmlReadHandler
org.pentaho.reporting.libraries.xmlns.parser.MultiplexRootElementHandler
All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class MultiplexRootElementHandler extends RootXmlReadHandler
A root-handler that intercepts the first call to startElement to select a XmlReadHandler based on the XmlDocumentInfo provided by the parser.
Author:
Thomas Morgner
  • Constructor Details

    • MultiplexRootElementHandler

      public MultiplexRootElementHandler(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager, org.pentaho.reporting.libraries.resourceloader.ResourceKey source, org.pentaho.reporting.libraries.resourceloader.ResourceKey context, long version, XmlFactoryModule[] rootHandlers)
      Creates a new MultiplexRootElementHandler for the given root handler selection.
      Parameters:
      manager - the resource manager that loaded this xml-file.
      source - the source-key that idenfies from where the file was loaded.
      context - the key that should be used to resolve relative paths.
      version - the versioning information for the root-file.
      rootHandlers - the roothandlers, never null.
  • Method Details

    • getEntityResolver

      public EntityResolver getEntityResolver()
      Returns the entity resolver used in this handler.
      Overrides:
      getEntityResolver in class RootXmlReadHandler
      Returns:
      the entity resolver.
    • getParserEntityResolver

      public ParserEntityResolver getParserEntityResolver()
      Returns the parent entity resolver used in the element handler. This returns the modifiable entity-resolver backend.
      Returns:
      the entity resolver.
    • getRootHandlers

      protected XmlFactoryModule[] getRootHandlers()
      Returns all known roothandlers.
      Returns:
      the known root handlers.
    • interceptFirstStartElement

      protected void interceptFirstStartElement(String originalUri, String localName, String qName, Attributes attributes) throws SAXException
      Starts processing an element.
      Overrides:
      interceptFirstStartElement in class RootXmlReadHandler
      Parameters:
      originalUri - the URI.
      localName - the local name.
      qName - the qName.
      attributes - the attributes.
      Throws:
      SAXException - if there is a parsing problem.
    • getSelectedRootHandler

      public XmlFactoryModule getSelectedRootHandler()