org.apache.velocity.runtime.resource
Class ResourceManagerImpl

java.lang.Object
  extended by org.apache.velocity.runtime.resource.ResourceManagerImpl
All Implemented Interfaces:
ResourceManager

public class ResourceManagerImpl
extends Object
implements ResourceManager

Class to manage the text resource for the Velocity Runtime.

Version:
$Id: ResourceManagerImpl.java 151549 2005-02-06 06:19:43Z wglass $
Author:
Will Glass-Husain, Jason van Zyl, Paulo Gaspar, Geir Magnusson Jr.

Field Summary
protected  ResourceCache globalCache
          Object implementing ResourceCache to be our resource manager's Resource cache.
static int RESOURCE_CONTENT
          A static content resource.
static int RESOURCE_TEMPLATE
          A template resources.
protected  ArrayList resourceLoaders
          The List of templateLoaders that the Runtime will use to locate the InputStream source of a template.
protected  RuntimeServices rsvc
           
 
Constructor Summary
ResourceManagerImpl()
           
 
Method Summary
 String getLoaderNameForResource(String resourceName)
          Determines is a template exists, and returns name of the loader that provides it.
 Resource getResource(String resourceName, int resourceType)
          Deprecated. 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RESOURCE_TEMPLATE

public static final int RESOURCE_TEMPLATE
A template resources.

See Also:
Constant Field Values

RESOURCE_CONTENT

public static final int RESOURCE_CONTENT
A static content resource.

See Also:
Constant Field Values

globalCache

protected ResourceCache globalCache
Object implementing ResourceCache to be our resource manager's Resource cache.


resourceLoaders

protected ArrayList resourceLoaders
The List of templateLoaders that the Runtime will use to locate the InputStream source of a template.


rsvc

protected RuntimeServices rsvc
Constructor Detail

ResourceManagerImpl

public ResourceManagerImpl()
Method Detail

initialize

public void initialize(RuntimeServices rs)
                throws Exception
Initialize the ResourceManager.

Specified by:
initialize in interface ResourceManager
Throws:
Exception

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).

Specified by:
getResource in interface ResourceManager
Parameters:
resourceName - The name of the resource to retrieve.
resourceType - The type of resource (RESOURCE_TEMPLATE, RESOURCE_CONTENT, etc.).
encoding - The character encoding to use.
Returns:
Resource with the template parsed and ready.
Throws:
ResourceNotFoundException - if template not found from any available source.
ParseErrorException - if template cannot be parsed due to syntax (or other) error.
Exception - if a problem in parse

loadResource

protected Resource loadResource(String resourceName,
                                int resourceType,
                                String encoding)
                         throws ResourceNotFoundException,
                                ParseErrorException,
                                Exception
Loads a resource from the current set of resource loaders

Parameters:
resourceName - The name of the resource to retrieve.
resourceType - The type of resource (RESOURCE_TEMPLATE, RESOURCE_CONTENT, etc.).
encoding - The character encoding to use.
Returns:
Resource with the template parsed and ready.
Throws:
ResourceNotFoundException - if template not found from any available source.
ParseErrorException - if template cannot be parsed due to syntax (or other) error.
Exception - if a problem in parse

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.

Parameters:
resource - resource to refresh
Throws:
ResourceNotFoundException - if template not found from current source for this Resource
ParseErrorException - if template cannot be parsed due to syntax (or other) error.
Exception - if a problem in parse

getResource

@Deprecated
public Resource getResource(String resourceName,
                                       int resourceType)
                     throws ResourceNotFoundException,
                            ParseErrorException,
                            Exception
Deprecated. 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).

Parameters:
resourceName - The name of the resource to retrieve.
resourceType - The type of resource (RESOURCE_TEMPLATE, RESOURCE_CONTENT, etc.).
Returns:
Resource with the template parsed and ready.
Throws:
ResourceNotFoundException - if template not found from any available source.
ParseErrorException - if template cannot be parsed due to syntax (or other) error.
Exception - if a problem in parse

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.

Specified by:
getLoaderNameForResource in interface ResourceManager
Parameters:
resourceName - Name of template or content resource
Returns:
class name of loader than can provide it


Copyright © 2002 Apache Software Foundation. All Rights Reserved.