org.pentaho.reporting.libraries.resourceloader
Interface ResourceLoader

All Known Implementing Classes:
ClassloaderResourceLoader, FileResourceLoader, RawResourceLoader, URLResourceLoader, ZipResourceLoader

public interface ResourceLoader

A resource loader knows how to get binary rawdata from a location specified by an resource key. A resource key is a wrapper around any kind of data that is suitable to identify a resource location. The resource key can also hold configuration data for the factory. If the storage system is hierarchical, a new resource key can be derived from a given path-string.

Author:
Thomas Morgner

Method Summary
 ResourceKey createKey(java.lang.Object value, java.util.Map factoryKeys)
          Creates a new resource key from the given object and the factory keys.
 ResourceKey deriveKey(ResourceKey parent, java.lang.String path, java.util.Map factoryKeys)
          Derives a new resource key from the given key.
 ResourceKey deserialize(ResourceKey bundleKey, java.lang.String stringKey)
          Creates a ResourceKey based off the String representation of the key.
 boolean isSupportedDeserializer(java.lang.String data)
          Determines if the resource loader is capable of deserializing the serialized version of the ResourceKey.
 boolean isSupportedKey(ResourceKey key)
          Checks, whether this resource loader implementation was responsible for creating this key.
 ResourceData load(ResourceKey key)
          Loads the binary data represented by this key.
 java.lang.String serialize(ResourceKey bundleKey, ResourceKey key)
          Serializes the resource key to a String representation which can be recreated using the deserialize(ResourceKey) method.
 java.net.URL toURL(ResourceKey key)
          Generates a URL version of the supplied ResourceKey.
 

Method Detail

isSupportedKey

boolean isSupportedKey(ResourceKey key)
Checks, whether this resource loader implementation was responsible for creating this key.

Parameters:
key - the key that should be tested.
Returns:
true, if the key is supported.

createKey

ResourceKey createKey(java.lang.Object value,
                      java.util.Map factoryKeys)
                      throws ResourceKeyCreationException
Creates a new resource key from the given object and the factory keys.

Parameters:
value - the key value.
factoryKeys - optional parameter map (can be null).
Returns:
the created key or null, if the format was not recognized.
Throws:
ResourceKeyCreationException - if creating the key failed.

deriveKey

ResourceKey deriveKey(ResourceKey parent,
                      java.lang.String path,
                      java.util.Map factoryKeys)
                      throws ResourceKeyCreationException
Derives a new resource key from the given key. If neither a path nor new factory-keys are given, the parent key is returned.

Parameters:
parent - the parent
path - the derived path (can be null).
factoryKeys - the optional factory keys (can be null).
Returns:
the derived key.
Throws:
ResourceKeyCreationException - if the key cannot be derived for any reason.

load

ResourceData load(ResourceKey key)
                  throws ResourceLoadingException
Loads the binary data represented by this key.

Parameters:
key -
Returns:
Throws:
ResourceLoadingException

toURL

java.net.URL toURL(ResourceKey key)
Generates a URL version of the supplied ResourceKey.

Parameters:
key - the ResourceKey from which a URL will be created
Returns:
the URL representation of the ResourceKey

isSupportedDeserializer

boolean isSupportedDeserializer(java.lang.String data)
Determines if the resource loader is capable of deserializing the serialized version of the ResourceKey.

Parameters:
data - the serialized version of the resource key
Returns:
true if this ResourceLoader is capable of deserializing the serialized version of this resource key, false otherwise.

serialize

java.lang.String serialize(ResourceKey bundleKey,
                           ResourceKey key)
                           throws ResourceException
Serializes the resource key to a String representation which can be recreated using the deserialize(ResourceKey) method.

Parameters:
bundleKey -
key -
Returns:
a String which is a serialized version of the ResourceKey
Throws:
ResourceException - indicates an error serializing the resource key

deserialize

ResourceKey deserialize(ResourceKey bundleKey,
                        java.lang.String stringKey)
                        throws ResourceKeyCreationException
Creates a ResourceKey based off the String representation of the key. The String should have been created using the serialize method.

Parameters:
bundleKey -
stringKey - the String representation of the ResourceKey @return a ResourceKey which matches the String representation
Throws:
ResourceKeyCreationException - indicates an error occurred in the creation or deserialization of the ResourceKey