Class AbstractXmlResourceFactory

java.lang.Object
org.pentaho.reporting.libraries.xmlns.parser.AbstractXmlResourceFactory
All Implemented Interfaces:
org.pentaho.reporting.libraries.resourceloader.ResourceFactory

public abstract class AbstractXmlResourceFactory extends 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 final String
    A key for the content base.

    Fields inherited from interface org.pentaho.reporting.libraries.resourceloader.ResourceFactory

    CONFIG_PREFIX
  • Method Summary

    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
    Loads all XmlFactoryModule-implementations from the given configuration.
    parseDirectly(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager, InputSource input, org.pentaho.reporting.libraries.resourceloader.ResourceKey context, Map parameters)
    A method to allow to invoke the parsing without accessing the LibLoader layer.
    void
    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 Details

  • Method Details

    • 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 Object parseDirectly(org.pentaho.reporting.libraries.resourceloader.ResourceManager manager, InputSource input, org.pentaho.reporting.libraries.resourceloader.ResourceKey context, 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:
      NullPointerException - if the module given is null.