org.openmobileis.embedded.webserver.templates
Class Freemarkerv1JarCacheRetriever

java.lang.Object
  extended byorg.openmobileis.embedded.webserver.templates.Freemarkerv1JarCacheRetriever

public class Freemarkerv1JarCacheRetriever
extends java.lang.Object

Retrieves cacheable objects through the file system. This is the default retriever for FileTemplateCache.

Version:
$Id: FileRetriever.java,v 1.17 2004/10/24 09:14:42 run2000 Exp $

Field Summary
protected  java.lang.String directoryRoot
          The root directory where the retriever will get files.
protected  java.lang.String encoding
          The text encoding of the template files.
protected  java.lang.String filenameSuffix
          The filename suffix required for a file to be retrieved.
protected  TemplateRegistry registry
          The template registry to use to instantiate objects.
 
Constructor Summary
Freemarkerv1JarCacheRetriever(java.lang.ClassLoader loader)
          Creates new FileRetriever.
Freemarkerv1JarCacheRetriever(java.lang.String path, java.lang.ClassLoader loader)
          Constructs a FileRetriever with a directory in which it will look for template files.
 
Method Summary
 boolean connectionOk()
          Corresponds to checkCacheDir for file-system implementations.
 boolean equals(java.lang.Object o)
          Is this file retriever equal to another object?
 boolean exists(java.lang.String location)
          Tests whether the object still exists in the template repository.
 java.lang.String getConnection()
          Gets the connection for this retriever.
 java.lang.String getEncoding()
          Returns the character encoding to be used when reading template files.
 java.lang.String getFilenameSuffix()
          Returns the file suffix.
 java.io.File getPath()
          Returns the root directory for this retriever.
 java.util.List getPreloadData()
          Returns a list of objects (Strings) to pre-load the cache with.
 TemplateRegistry getTemplateRegistry()
          Gets the current template registry implementation in use.
 int hashCode()
          Retrieve the hash code for this object
protected  boolean isSuffixValid(java.lang.String name)
          Determine whether the filename ends with the appropriate filename suffix.
 long lastModified(java.lang.String location)
          Determines when the object in the template repository was last modified.
 Cacheable loadData(java.lang.String location, java.lang.String type)
          Retrieves the appropriate data to be stored in the cache.
protected  java.lang.String nameToFile(java.lang.String name)
          Converts a cache element name to a File.
protected  void readDirectory(java.lang.String dir, java.lang.String relativeDirPath, java.util.List visitedFiles)
          Recursively updates the cache from the files in a (sub)directory and its subdirectories.
 void setConnection(java.lang.String path)
          Sets the root directory for this retriever.
 void setEncoding(java.lang.String encoding)
          Sets the character encoding to be used when reading template files.
 void setFilenameSuffix(java.lang.String filenameSuffix)
          Sets the file suffix.
 void setPath(java.io.File dir)
          Sets the root directory for this retriever.
 void setTemplateRegistry(TemplateRegistry cRegistry)
          Sets a template registry implementation to use when creating new templates.
 java.lang.String toString()
          Returns a string representation of the object.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

directoryRoot

protected java.lang.String directoryRoot
The root directory where the retriever will get files.


filenameSuffix

protected java.lang.String filenameSuffix
The filename suffix required for a file to be retrieved.


encoding

protected java.lang.String encoding
The text encoding of the template files.


registry

protected TemplateRegistry registry
The template registry to use to instantiate objects.

Constructor Detail

Freemarkerv1JarCacheRetriever

public Freemarkerv1JarCacheRetriever(java.lang.ClassLoader loader)
Creates new FileRetriever.


Freemarkerv1JarCacheRetriever

public Freemarkerv1JarCacheRetriever(java.lang.String path,
                                     java.lang.ClassLoader loader)
Constructs a FileRetriever with a directory in which it will look for template files.

Parameters:
path - the absolute path of the directory containing templates for this retriever
Throws:
java.lang.IllegalArgumentException - the root directory is null
Method Detail

connectionOk

public boolean connectionOk()
                     throws TemplateException
Corresponds to checkCacheDir for file-system implementations.

Returns:
true if the connection is ok, otherwise false
Throws:
TemplateException - the directory no longer exists, or is not a directory

setConnection

public void setConnection(java.lang.String path)
Sets the root directory for this retriever.

Parameters:
path - the absolute path of the directory containing files for this retriever.
Throws:
java.lang.IllegalArgumentException - the root directory is null

getConnection

public java.lang.String getConnection()
Gets the connection for this retriever. Corresponds to getPath for file-system implementations.


setPath

public void setPath(java.io.File dir)
Sets the root directory for this retriever.

Parameters:
dir - the root directory containing files for this retriever
Throws:
java.lang.IllegalArgumentException - the root directory is null

getPath

public java.io.File getPath()
Returns the root directory for this retriever.

Returns:
the root directory containing files for this retriever

setFilenameSuffix

public void setFilenameSuffix(java.lang.String filenameSuffix)
Sets the file suffix. If set, files that do not have this suffix will be ignored when read into the cache.

Parameters:
filenameSuffix - the optional filename suffix of files to be read for this retriever.

getFilenameSuffix

public java.lang.String getFilenameSuffix()
Returns the file suffix. If set, files that do not have this suffix will be ignored when read into the cache.

Returns:
the optional filename suffix of files to be read for this retriever.

exists

public boolean exists(java.lang.String location)
Tests whether the object still exists in the template repository. This may be redundant. Instead, lastModified could throw an appropriate exception.

Parameters:
location - the location of the object to be tested
Returns:
true if the object still exists in the repository, otherwise false
See Also:
lastModified(java.lang.String)

getPreloadData

public java.util.List getPreloadData()
                              throws TemplateException
Returns a list of objects (Strings) to pre-load the cache with.

Returns:
a List of Strings to preload the cache with
Throws:
TemplateException

readDirectory

protected void readDirectory(java.lang.String dir,
                             java.lang.String relativeDirPath,
                             java.util.List visitedFiles)
                      throws java.io.IOException
Recursively updates the cache from the files in a (sub)directory and its subdirectories.

Parameters:
dir - the directory to be read.
relativeDirPath - a string representing the directory's path relative to the root cache directory.
visitedFiles - a List of files that have been visited so far.
Throws:
java.io.IOException

lastModified

public long lastModified(java.lang.String location)
                  throws TemplateException

Determines when the object in the template repository was last modified.

Throws:
TemplateException - is thrown whenever the item:
  • does not exist
  • is the wrong type (eg. directory, not file)
  • has an invalid file suffix

isSuffixValid

protected boolean isSuffixValid(java.lang.String name)
                         throws TemplateException
Determine whether the filename ends with the appropriate filename suffix.

Parameters:
name - the filename to be checked
Returns:
is the filename suffix ok?
Throws:
TemplateException - the suffix is invalid

nameToFile

protected java.lang.String nameToFile(java.lang.String name)
                               throws TemplateException
Converts a cache element name to a File.

Parameters:
name - the filename relative to the directory root of the retriever
Returns:
the fully qualified filename
Throws:
TemplateException

loadData

public Cacheable loadData(java.lang.String location,
                          java.lang.String type)
                   throws TemplateException
Retrieves the appropriate data to be stored in the cache.

Parameters:
location - the filename, relative to the root directory, of the template data to load
type - the type of item to be loaded
Returns:
the template data
Throws:
TemplateException

setEncoding

public void setEncoding(java.lang.String encoding)
Sets the character encoding to be used when reading template files.

Parameters:
encoding - the name of the encoding to be used; this will be passed to the constructor of InputStreamReader.

getEncoding

public java.lang.String getEncoding()
Returns the character encoding to be used when reading template files.

Returns:
the name of the encoding to be used; this will be passed to the constructor of InputStreamReader.

setTemplateRegistry

public void setTemplateRegistry(TemplateRegistry cRegistry)
Sets a template registry implementation to use when creating new templates.


getTemplateRegistry

public TemplateRegistry getTemplateRegistry()
Gets the current template registry implementation in use.


equals

public boolean equals(java.lang.Object o)
Is this file retriever equal to another object?

Parameters:
o - the object to compare this object with
Returns:
true if the objects are equal, otherwise false

hashCode

public int hashCode()
Retrieve the hash code for this object

Returns:
the hash code

toString

public java.lang.String toString()
Returns a string representation of the object.

Returns:
a String representation of the object


Copyright 2006 OpenMobileIS. All Rights Reserved.