org.pentaho.reporting.libraries.resourceloader
Class DefaultResourceManagerBackend

java.lang.Object
  extended by org.pentaho.reporting.libraries.resourceloader.DefaultResourceManagerBackend
All Implemented Interfaces:
ResourceManagerBackend

public class DefaultResourceManagerBackend
extends java.lang.Object
implements ResourceManagerBackend

Todo: Document Me

Author:
Thomas Morgner

Constructor Summary
DefaultResourceManagerBackend()
           
 
Method Summary
 Resource create(ResourceManager frontEnd, ResourceData data, ResourceKey context, java.lang.Class[] target)
           
 ResourceKey createKey(java.lang.Object data, java.util.Map parameters)
           
 ResourceKey deriveKey(ResourceKey parent, java.lang.String path, java.util.Map parameters)
          Derives a new key from the given resource-key.
 ResourceKey deserialize(ResourceKey bundleKey, java.lang.String serializedKey)
          Converts a serialized version of a ResourceKey into an actual ResourceKey by locating the proper ResourceLoader that can perform the deserialization.
 boolean isResourceUnchanged(ResourceManager frontEnd, Resource resource)
           
 ResourceData loadRawData(ResourceManager frontEnd, ResourceKey key)
           
 ResourceBundleData loadResourceBundle(ResourceManager frontEnd, ResourceKey key)
          Tries to find the first resource-bundle-loader that would be able to process the key.
 void registerBundleLoader(ResourceBundleLoader loader)
           
 void registerDefaultFactories()
           
 void registerDefaultLoaders()
           
 void registerFactory(ResourceFactory factory)
           
 void registerLoader(ResourceLoader loader)
           
 java.lang.String serialize(ResourceKey bundleKey, ResourceKey key)
          Creates a String version of the ResourceKey that can be deserialized with the deserialize() method.
 java.net.URL toURL(ResourceKey key)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultResourceManagerBackend

public DefaultResourceManagerBackend()
Method Detail

createKey

public ResourceKey createKey(java.lang.Object data,
                             java.util.Map parameters)
                      throws ResourceKeyCreationException
Specified by:
createKey in interface ResourceManagerBackend
Throws:
ResourceKeyCreationException

deriveKey

public ResourceKey deriveKey(ResourceKey parent,
                             java.lang.String path,
                             java.util.Map parameters)
                      throws ResourceKeyCreationException
Derives a new key from the given resource-key. Only keys for a hierarchical storage system (like file-systems or URLs) can have derived keys. Since LibLoader 0.3.0 only hierarchical keys can be derived. For that, the deriving path must be given as String.

The optional parameter-map will be applied to the derived key after the parent's parameters have been copied to the new key.

Before trying to derive the key, the system tries to interpret the path as absolute key-value.

Specified by:
deriveKey in interface ResourceManagerBackend
Parameters:
parent - the parent key, or null to interpret the path as absolute key.
path - the relative path, that is used to derive the key.
parameters - a optional map containing resource-key parameters.
Returns:
the derived key.
Throws:
ResourceKeyCreationException - if deriving the key failed.

toURL

public java.net.URL toURL(ResourceKey key)
Specified by:
toURL in interface ResourceManagerBackend

create

public Resource create(ResourceManager frontEnd,
                       ResourceData data,
                       ResourceKey context,
                       java.lang.Class[] target)
                throws ResourceLoadingException,
                       ResourceCreationException
Specified by:
create in interface ResourceManagerBackend
Throws:
ResourceLoadingException
ResourceCreationException

isResourceUnchanged

public boolean isResourceUnchanged(ResourceManager frontEnd,
                                   Resource resource)
                            throws ResourceLoadingException
Specified by:
isResourceUnchanged in interface ResourceManagerBackend
Throws:
ResourceLoadingException

loadResourceBundle

public ResourceBundleData loadResourceBundle(ResourceManager frontEnd,
                                             ResourceKey key)
                                      throws ResourceLoadingException
Tries to find the first resource-bundle-loader that would be able to process the key.

Specified by:
loadResourceBundle in interface ResourceManagerBackend
Parameters:
key - the resource-key.
Returns:
the resourceloader for that key, or null, if no resource-loader is able to process the key.
Throws:
ResourceLoadingException - if an error occured.

loadRawData

public ResourceData loadRawData(ResourceManager frontEnd,
                                ResourceKey key)
                         throws UnrecognizedLoaderException,
                                ResourceLoadingException
Specified by:
loadRawData in interface ResourceManagerBackend
Throws:
UnrecognizedLoaderException
ResourceLoadingException

registerDefaultFactories

public void registerDefaultFactories()
Specified by:
registerDefaultFactories in interface ResourceManagerBackend

registerDefaultLoaders

public void registerDefaultLoaders()
Specified by:
registerDefaultLoaders in interface ResourceManagerBackend

registerBundleLoader

public void registerBundleLoader(ResourceBundleLoader loader)
Specified by:
registerBundleLoader in interface ResourceManagerBackend

registerLoader

public void registerLoader(ResourceLoader loader)
Specified by:
registerLoader in interface ResourceManagerBackend

registerFactory

public void registerFactory(ResourceFactory factory)
Specified by:
registerFactory in interface ResourceManagerBackend

deserialize

public ResourceKey deserialize(ResourceKey bundleKey,
                               java.lang.String serializedKey)
                        throws ResourceKeyCreationException
Converts a serialized version of a ResourceKey into an actual ResourceKey by locating the proper ResourceLoader that can perform the deserialization.

Specified by:
deserialize in interface ResourceManagerBackend
Parameters:
bundleKey -
serializedKey - the String serialized key to be deserialized @returns the ResourceKey that has been deserialized
Throws:
ResourceKeyCreationException

serialize

public java.lang.String serialize(ResourceKey bundleKey,
                                  ResourceKey key)
                           throws ResourceException
Creates a String version of the ResourceKey that can be deserialized with the deserialize() method.

Specified by:
serialize in interface ResourceManagerBackend
Parameters:
bundleKey -
key - @throw ResourceException indicates an error trying to serialize the key
Throws:
ResourceException