org.pentaho.reporting.libraries.resourceloader

Interface ResourceBundleLoader

public interface ResourceBundleLoader

A resource bundle is a compound archive that holds several resources.

Author: Thomas Morgner

Method Summary
ResourceKeyderiveKey(ResourceKey parent, String path, Map factoryKeys)
Derives a new resource key from the given key.
ResourceKeydeserialize(ResourceKey bundleKey, String stringKey)
Creates a ResourceKey based off the String representation of the key.
booleanisSupportedDeserializer(String data)
booleanisSupportedKey(ResourceKey key)
Checks, whether this resource loader implementation was responsible for creating this key.
ResourceBundleDataloadBundle(ResourceManager resourceManager, ResourceKey key)
Tries to load the bundle.
Stringserialize(ResourceKey bundleKey, ResourceKey key)
Serializes the resource key to a String representation which can be recreated using the deserialize(ResourceKey) method.

Method Detail

deriveKey

public ResourceKey deriveKey(ResourceKey parent, String path, Map factoryKeys)
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.

deserialize

public ResourceKey deserialize(ResourceKey bundleKey, String stringKey)
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

isSupportedDeserializer

public boolean isSupportedDeserializer(String data)

isSupportedKey

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

loadBundle

public ResourceBundleData loadBundle(ResourceManager resourceManager, ResourceKey key)
Tries to load the bundle. If the key does not point to a usable resource-bundle, this method returns null. The Exception is only thrown if the bundle is not readable because of IO-Errors.

A resource-bundle loader should only load the bundle for the key itself, never for any of the derived subkeys. It is the ResourceManager's responsibility to search the key's hierachy for the correct key.

Parameters: key the resource key pointing to the bundle.

Returns: the loaded bundle or null, if the resource was not understood.

Throws: ResourceLoadingException if something goes wrong.

serialize

public String serialize(ResourceKey bundleKey, ResourceKey key)
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