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 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.
-
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.
-
-
-
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 interfaceorg.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 interfaceorg.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.
-
-