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

Methods
`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`