org.jfree.resourceloader
Class ResourceManager

java.lang.Object
  extended by org.jfree.resourceloader.ResourceManager

public class ResourceManager
extends java.lang.Object

The resource manager takes care about the loaded resources, performs caching, if needed and is the central instance when dealing with resources. Resource loading is a two-step process. In the first step, the ResourceLoader accesses the physical storage or network connection to read in the binary data. The loaded ResourceData carries versioning information with it an can be cached indendently from the produced result. Once the loading is complete, a ResourceFactory interprets the binary data and produces a Java-Object from it.

Resources are identified by an Resource-Key and some optional loader parameters (which can be used to parametrize the resource-factories).

Author:
Thomas Morgner
See Also:
ResourceData, ResourceLoader, ResourceFactory

Field Summary
static java.lang.String DATA_CACHE_PROVIDER_KEY
           
static java.lang.String FACTORY_CACHE_PROVIDER_KEY
           
 
Constructor Summary
ResourceManager()
           
 
Method Summary
 Resource create(ResourceKey key, ResourceKey context)
           
 Resource create(ResourceKey key, ResourceKey context, java.lang.Class target)
           
 Resource create(ResourceKey key, ResourceKey context, java.lang.Class[] target)
           
 Resource createDirectly(java.lang.Object keyValue, java.lang.Class target)
           
 ResourceKey createKey(java.lang.Object data)
          Creates a ResourceKey that carries no Loader-Parameters from the given object.
 ResourceKey createKey(java.lang.Object data, java.util.Map parameters)
          Creates a ResourceKey that carries the given Loader-Parameters contained in the optional map.
 ResourceKey deriveKey(ResourceKey parent, java.lang.String path)
          Derives a new key from the given resource-key.
 ResourceKey deriveKey(ResourceKey parent, java.lang.String path, java.util.Map parameters)
          Derives a new key from the given resource-key.
 org.jfree.resourceloader.cache.ResourceDataCache getDataCache()
           
 org.jfree.resourceloader.cache.ResourceFactoryCache getFactoryCache()
           
 ResourceData load(ResourceKey key)
           
 void registerDataCache()
           
 void registerDefaultFactories()
           
 void registerDefaultLoaders()
           
 void registerDefaults()
           
 void registerFactory(ResourceFactory factory)
           
 void registerFactoryCache()
           
 void registerLoader(ResourceLoader loader)
           
 void setDataCache(org.jfree.resourceloader.cache.ResourceDataCache dataCache)
           
 void setFactoryCache(org.jfree.resourceloader.cache.ResourceFactoryCache factoryCache)
           
 java.net.URL toURL(ResourceKey key)
          Tries to convert the resource-key into an URL.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATA_CACHE_PROVIDER_KEY

public static final java.lang.String DATA_CACHE_PROVIDER_KEY
See Also:
Constant Field Values

FACTORY_CACHE_PROVIDER_KEY

public static final java.lang.String FACTORY_CACHE_PROVIDER_KEY
See Also:
Constant Field Values
Constructor Detail

ResourceManager

public ResourceManager()
Method Detail

createKey

public ResourceKey createKey(java.lang.Object data)
                      throws ResourceKeyCreationException
Creates a ResourceKey that carries no Loader-Parameters from the given object.

Parameters:
data - the key-data
Returns:
the generated resource-key, never null.
Throws:
ResourceKeyCreationException - if the key-creation failed.

createKey

public ResourceKey createKey(java.lang.Object data,
                             java.util.Map parameters)
                      throws ResourceKeyCreationException
Creates a ResourceKey that carries the given Loader-Parameters contained in the optional map.

Parameters:
data - the key-data
parameters - an optional map of parameters.
Returns:
the generated resource-key, never null.
Throws:
ResourceKeyCreationException - if the key-creation failed.

deriveKey

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

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

Parameters:
parent - the parent key, must never be null
path - the relative path, that is used to derive the key.
Returns:
the derived key.
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.

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.
Returns:
the derived key.
Throws:
ResourceKeyCreationException

toURL

public java.net.URL toURL(ResourceKey key)
Tries to convert the resource-key into an URL. Not all resource-keys have an URL representation. This method exists to make it easier to connect LibLoader to other resource-loading frameworks.

Parameters:
key - the resource-key
Returns:
the URL for the key, or null if there is no such key.

load

public ResourceData load(ResourceKey key)
                  throws ResourceLoadingException
Throws:
ResourceLoadingException

createDirectly

public Resource createDirectly(java.lang.Object keyValue,
                               java.lang.Class target)
                        throws ResourceLoadingException,
                               ResourceCreationException,
                               ResourceKeyCreationException
Throws:
ResourceLoadingException
ResourceCreationException
ResourceKeyCreationException

create

public Resource create(ResourceKey key,
                       ResourceKey context,
                       java.lang.Class target)
                throws ResourceLoadingException,
                       ResourceCreationException
Throws:
ResourceLoadingException
ResourceCreationException

create

public Resource create(ResourceKey key,
                       ResourceKey context)
                throws ResourceLoadingException,
                       ResourceCreationException
Throws:
ResourceLoadingException
ResourceCreationException

create

public Resource create(ResourceKey key,
                       ResourceKey context,
                       java.lang.Class[] target)
                throws ResourceLoadingException,
                       ResourceCreationException
Throws:
ResourceLoadingException
ResourceCreationException

getDataCache

public org.jfree.resourceloader.cache.ResourceDataCache getDataCache()

setDataCache

public void setDataCache(org.jfree.resourceloader.cache.ResourceDataCache dataCache)

getFactoryCache

public org.jfree.resourceloader.cache.ResourceFactoryCache getFactoryCache()

setFactoryCache

public void setFactoryCache(org.jfree.resourceloader.cache.ResourceFactoryCache factoryCache)

registerDefaults

public void registerDefaults()

registerDefaultFactories

public void registerDefaultFactories()

registerDataCache

public void registerDataCache()

registerFactoryCache

public void registerFactoryCache()

registerDefaultLoaders

public void registerDefaultLoaders()

registerLoader

public void registerLoader(ResourceLoader loader)

registerFactory

public void registerFactory(ResourceFactory factory)