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
FieldsFields inherited from interface org.pentaho.reporting.libraries.resourceloader.ResourceFactory
CONFIG_PREFIX
-
Method Summary
Modifier and TypeMethodDescriptionorg.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
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 Details
-
CONTENTBASE_KEY
A key for the content base.- See Also:
-
-
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 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 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 interfaceorg.pentaho.reporting.libraries.resourceloader.ResourceFactory
- See Also:
-
registerModule
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.
-