Class AbstractXmlResourceFactory

  • All Implemented Interfaces:
    org.pentaho.reporting.libraries.resourceloader.ResourceFactory

    public abstract class AbstractXmlResourceFactory
    extends java.lang.Object
    implements org.pentaho.reporting.libraries.resourceloader.ResourceFactory
    A base-class for resource-factories that load their resources from XML files. This class provides a multiplexing option. For this, the parser looks at the root-element of the document to be parsed and selects the most suitable XmlFactoryModule implementation registered.
    Author:
    Thomas Morgner
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String CONTENTBASE_KEY
      A key for the content base.
      • Fields inherited from interface org.pentaho.reporting.libraries.resourceloader.ResourceFactory

        CONFIG_PREFIX
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.pentaho.reporting.libraries.resourceloader.Resource create​(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager, org.pentaho.reporting.libraries.resourceloader.ResourceData data, org.pentaho.reporting.libraries.resourceloader.ResourceKey context)
      Creates a resource by interpreting the data given in the resource-data object.
      void initializeDefaults()
      Loads all XmlFactoryModule-implementations from the given configuration.
      java.lang.Object parseDirectly​(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager, org.xml.sax.InputSource input, org.pentaho.reporting.libraries.resourceloader.ResourceKey context, java.util.Map parameters)
      A method to allow to invoke the parsing without accessing the LibLoader layer.
      void registerModule​(XmlFactoryModule factoryModule)
      Registers a factory module for being used during the parsing.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.pentaho.reporting.libraries.resourceloader.ResourceFactory

        getFactoryType
    • Field Detail

      • CONTENTBASE_KEY

        public static final java.lang.String CONTENTBASE_KEY
        A key for the content base.
        See Also:
        Constant Field Values
    • Method Detail

      • create

        public org.pentaho.reporting.libraries.resourceloader.Resource create​(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager,
                                                                              org.pentaho.reporting.libraries.resourceloader.ResourceData data,
                                                                              org.pentaho.reporting.libraries.resourceloader.ResourceKey context)
                                                                       throws org.pentaho.reporting.libraries.resourceloader.ResourceCreationException,
                                                                              org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException
        Creates a resource by interpreting the data given in the resource-data object. If additional datastreams need to be parsed, the provided resource manager should be used. This method parses the given resource-data as XML stream.
        Specified by:
        create in interface org.pentaho.reporting.libraries.resourceloader.ResourceFactory
        Parameters:
        manager - the resource manager used for all resource loading.
        data - the resource-data from where the binary data is read.
        context - the resource context used to resolve relative resource paths.
        Returns:
        the parsed result, never null.
        Throws:
        org.pentaho.reporting.libraries.resourceloader.ResourceCreationException - if the resource could not be parsed due to syntaxctial or logical errors in the data.
        org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException - if the resource could not be accessed from the physical storage.
      • parseDirectly

        public java.lang.Object parseDirectly​(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager,
                                              org.xml.sax.InputSource input,
                                              org.pentaho.reporting.libraries.resourceloader.ResourceKey context,
                                              java.util.Map parameters)
                                       throws org.pentaho.reporting.libraries.resourceloader.ResourceKeyCreationException,
                                              org.pentaho.reporting.libraries.resourceloader.ResourceCreationException,
                                              org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException
        A method to allow to invoke the parsing without accessing the LibLoader layer. The data to be parsed is held in the given InputSource object.
        Parameters:
        manager - the resource manager used for all resource loading.
        input - the raw-data given as SAX-InputSource.
        context - the resource context used to resolve relative resource paths.
        parameters - the parse parameters.
        Returns:
        the parsed result, never null.
        Throws:
        org.pentaho.reporting.libraries.resourceloader.ResourceCreationException - if the resource could not be parsed due to syntaxctial or logical errors in the data.
        org.pentaho.reporting.libraries.resourceloader.ResourceLoadingException - if the resource could not be accessed from the physical storage.
        org.pentaho.reporting.libraries.resourceloader.ResourceKeyCreationException - if creating the context key failed.
      • initializeDefaults

        public void initializeDefaults()
        Loads all XmlFactoryModule-implementations from the given configuration.
        Specified by:
        initializeDefaults in interface org.pentaho.reporting.libraries.resourceloader.ResourceFactory
        See Also:
        getConfiguration()
      • registerModule

        public void registerModule​(XmlFactoryModule factoryModule)
        Registers a factory module for being used during the parsing. If the factory module does not return a result that matches the factory's type, the parsing will always fail.
        Parameters:
        factoryModule - the factory module.
        Throws:
        java.lang.NullPointerException - if the module given is null.