org.pentaho.reporting.libraries.resourceloader
Class ResourceManager
public final
class
ResourceManager
extends 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
Method Summary |
Resource | create(ResourceKey key, ResourceKey context, Class target) |
Resource | create(ResourceKey key, ResourceKey context) |
Resource | create(ResourceKey key, ResourceKey context, Class[] target) |
Resource | createDirectly(Object keyValue, Class target) |
ResourceKey | createKey(Object data)
Creates a ResourceKey that carries no Loader-Parameters from the given object.
|
ResourceKey | createKey(Object data, Map parameters)
Creates a ResourceKey that carries the given Loader-Parameters contained in the optional map.
|
ResourceKey | deriveKey(ResourceKey parent, String path)
Derives a new key from the given resource-key. |
ResourceKey | deriveKey(ResourceKey parent, String path, Map parameters)
Derives a new key from the given resource-key. |
ResourceManagerBackend | getBackend() |
ResourceBundleDataCache | getBundleCache() |
ResourceDataCache | getDataCache() |
ResourceFactoryCache | getFactoryCache() |
ResourceData | load(ResourceKey key) |
ResourceData | loadRawData(ResourceKey key) |
ResourceBundleData | loadResourceBundle(ResourceKey key)
Tries to find the first resource-bundle-loader that would be able to process the key.
|
void | registerBundleDataCache() |
void | registerBundleLoader(ResourceBundleLoader loader) |
void | registerDataCache() |
void | registerDefaultFactories() |
void | registerDefaultLoaders() |
void | registerDefaults() |
void | registerFactory(ResourceFactory factory) |
void | registerFactoryCache() |
void | registerLoader(ResourceLoader loader) |
void | setBundleCache(ResourceBundleDataCache bundleCache) |
void | setDataCache(ResourceDataCache dataCache) |
void | setFactoryCache(ResourceFactoryCache factoryCache) |
void | shutDown() |
URL | toURL(ResourceKey key)
Tries to convert the resource-key into an URL. |
public static final String BUNDLE_CACHE_PROVIDER_KEY
public static final String BUNDLE_LOADER_PREFIX
public static final String DATA_CACHE_PROVIDER_KEY
public static final String FACTORY_CACHE_PROVIDER_KEY
public static final String FACTORY_TYPE_PREFIX
public static final String LOADER_PREFIX
public ResourceManager()
Default Constructor.
public
Resource createDirectly(Object keyValue, Class target)
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.
public
ResourceKey createKey(Object data, Map parameters)
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.
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 if deriving the key failed.
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. parameters a optional map containing resource-key parameters.
Returns: the derived key.
Throws: ResourceKeyCreationException if deriving the key failed.
Tries to find the first resource-bundle-loader that would be able to process the key.
Parameters: key the resource-key.
Returns: the resourceloader for that key, or null, if no resource-loader is able to process the key.
Throws: ResourceLoadingException if an error occured.
public void registerBundleDataCache()
public void registerDataCache()
public void registerDefaultFactories()
public void registerDefaultLoaders()
public void registerDefaults()
public void registerFactoryCache()
public void shutDown()
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.