org.apache.velocity.runtime.resource
Class ResourceManagerImpl
java.lang.Object
org.apache.velocity.runtime.resource.ResourceManagerImpl
- ResourceManager
public class ResourceManagerImpl
extends java.lang.Object
Class to manage the text resource for the Velocity
Runtime.
$Id: ResourceManagerImpl.java,v 1.7.4.1 2004/03/03 23:23:01 geirm Exp $static int | RESOURCE_CONTENT - A static content resource.
|
private static String | RESOURCE_LOADER_IDENTIFIER - token used to identify the loader internally
|
static int | RESOURCE_TEMPLATE - A template resources.
|
protected ResourceCache | globalCache - Object implementing ResourceCache to
be our resource manager's Resource cache.
|
private boolean | logWhenFound - switch to turn off log notice when a resource is found for
the first time.
|
private boolean | resourceLoaderInitializersActive - Each loader needs a configuration object for
its initialization, this flags keeps track of whether
or not the configuration objects have been created
for the resource loaders.
|
protected ArrayList | resourceLoaders - The List of templateLoaders that the Runtime will
use to locate the InputStream source of a template.
|
protected RuntimeServices | rsvc
|
private ArrayList | sourceInitializerList - This is a list of the template input stream source
initializers, basically properties for a particular
template stream source.
|
private Hashtable | sourceInitializerMap - This is a map of public name of the template
stream source to it's initializer.
|
private void | assembleResourceLoaderInitializers() - This will produce a List of Hashtables, each
hashtable contains the intialization info for
a particular resource loader.
|
String | getLoaderNameForResource(String resourceName) - Determines is a template exists, and returns name of the loader that
provides it.
|
Resource | getResource(String resourceName, int resourceType) - Use
getResource(String resourceName, int resourceType,
String encoding )
|
Resource | getResource(String resourceName, int resourceType, String encoding) - Gets the named resource.
|
void | initialize(RuntimeServices rs) - Initialize the ResourceManager.
|
protected Resource | loadResource(String resourceName, int resourceType, String encoding) - Loads a resource from the current set of resource loaders
|
protected void | refreshResource(Resource resource, String encoding) - Takes an existing resource, and 'refreshes' it.
|
RESOURCE_CONTENT
public static final int RESOURCE_CONTENT
A static content resource.
RESOURCE_LOADER_IDENTIFIER
private static final String RESOURCE_LOADER_IDENTIFIER
token used to identify the loader internally
RESOURCE_TEMPLATE
public static final int RESOURCE_TEMPLATE
A template resources.
globalCache
protected ResourceCache globalCache
Object implementing ResourceCache to
be our resource manager's Resource cache.
logWhenFound
private boolean logWhenFound
switch to turn off log notice when a resource is found for
the first time.
resourceLoaderInitializersActive
private boolean resourceLoaderInitializersActive
Each loader needs a configuration object for
its initialization, this flags keeps track of whether
or not the configuration objects have been created
for the resource loaders.
resourceLoaders
protected ArrayList resourceLoaders
The List of templateLoaders that the Runtime will
use to locate the InputStream source of a template.
sourceInitializerList
private ArrayList sourceInitializerList
This is a list of the template input stream source
initializers, basically properties for a particular
template stream source. The order in this list
reflects numbering of the properties i.e.
.resource.loader. =
sourceInitializerMap
private Hashtable sourceInitializerMap
This is a map of public name of the template
stream source to it's initializer. This is so
that clients of velocity can set properties of
a template source stream with its public name.
So for example, a client could set the
File.resource.path property and this would
change the resource.path property for the
file template stream source.
assembleResourceLoaderInitializers
private void assembleResourceLoaderInitializers()
This will produce a List of Hashtables, each
hashtable contains the intialization info for
a particular resource loader. This Hastable
will be passed in when initializing the
the template loader.
getLoaderNameForResource
public String getLoaderNameForResource(String resourceName)
Determines is a template exists, and returns name of the loader that
provides it. This is a slightly less hokey way to support
the Velocity.templateExists() utility method, which was broken
when per-template encoding was introduced. We can revisit this.
- getLoaderNameForResource in interface ResourceManager
resourceName
- Name of template or content resource
- class name of loader than can provide it
getResource
public Resource getResource(String resourceName,
int resourceType)
throws ResourceNotFoundException,
ParseErrorException,
Exception
Use
getResource(String resourceName, int resourceType,
String encoding )
Gets the named resource. Returned class type corresponds to specified type
(i.e. Template
to RESOURCE_TEMPLATE
).
resourceName
- The name of the resource to retrieve.resourceType
- The type of resource (RESOURCE_TEMPLATE
,
RESOURCE_CONTENT
, etc.).
- Resource with the template parsed and ready.
getResource
public Resource getResource(String resourceName,
int resourceType,
String encoding)
throws ResourceNotFoundException,
ParseErrorException,
Exception
Gets the named resource. Returned class type corresponds to specified type
(i.e. Template
to RESOURCE_TEMPLATE
).
- getResource in interface ResourceManager
resourceName
- The name of the resource to retrieve.resourceType
- The type of resource (RESOURCE_TEMPLATE
,
RESOURCE_CONTENT
, etc.).encoding
- The character encoding to use.
- Resource with the template parsed and ready.
loadResource
protected Resource loadResource(String resourceName,
int resourceType,
String encoding)
throws ResourceNotFoundException,
ParseErrorException,
Exception
Loads a resource from the current set of resource loaders
resourceName
- The name of the resource to retrieve.resourceType
- The type of resource (RESOURCE_TEMPLATE
,
RESOURCE_CONTENT
, etc.).encoding
- The character encoding to use.
- Resource with the template parsed and ready.
refreshResource
protected void refreshResource(Resource resource,
String encoding)
throws ResourceNotFoundException,
ParseErrorException,
Exception
Takes an existing resource, and 'refreshes' it. This
generally means that the source of the resource is checked
for changes according to some cache/check algorithm
and if the resource changed, then the resource data is
reloaded and re-parsed.
resource
- resource to refresh
Copyright B) 2002 Apache Software Foundation. All Rights Reserved.