Interface ResourceLoader

All Known Implementing Classes:
ClassloaderResourceLoader, FileObjectResourceLoader, 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 Details

    • 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(Object value, 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, String path, 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

      Loads the binary data represented by this key.
      Parameters:
      key -
      Returns:
      Throws:
      ResourceLoadingException
    • toURL

      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(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

      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, 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