simple.template.page
Class PageContainer

java.lang.Object
  extended by simple.template.page.PageContainer
All Implemented Interfaces:
Container, Database

public class PageContainer
extends java.lang.Object
implements Container

The PageContainer provides an implementation of the Container object for Page objects. This can be used with a TemplateEngine to provide template documents written in the Java Server Pages (JSP) syntax. This can use either Groovy or Java JSP templates to produce documents.

Author:
Niall Gallagher
See Also:
Composer

Field Summary
protected  Model data
          The internal storage used by this instance.
 
Constructor Summary
PageContainer(Context context)
          Constructor for the PageContainer object.
PageContainer(Workspace project, Context context)
          Constructor for the PageContainer object.
 
Method Summary
 boolean contains(java.lang.String name)
          The contains method is used to determine if a mapping exists for the given name.
 boolean exists(java.lang.String path)
          Determines whether the named template exists.
 java.lang.Object get(java.lang.String name)
          The get method is used to retrieve the value mapped to the specified name.
 java.util.Set keySet()
          To ascertain what mappings exist, the names of all values previously put into this database can be retrieved with this method.
 Document lookup(java.lang.String path)
          Looks for the named template and wraps the template within a new Document instance.
 Document lookup(java.lang.String path, boolean share)
          Looks for the named template and wraps the template within a new Document instance.
 Document lookup(java.lang.String path, java.lang.Object data, boolean share)
          Looks for the named template and wraps the template within a new Document instance.
 void put(java.lang.String name, java.lang.Object value)
          The put method is used to insert a mapping in the database that pairs the issued name with the issued value.
 void remove(java.lang.String name)
          The remove method is used to remove the mapping from the database.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface simple.template.Database
contains, get, keySet, put, remove
 

Field Detail

data

protected Model data
The internal storage used by this instance.

Constructor Detail

PageContainer

public PageContainer(Context context)
              throws java.lang.Exception
Constructor for the PageContainer object. The instance created will use the provided workspace to acquire all JSP pages referenced. Each page is acquired from the source path.

Parameters:
context - the context used to acquire the JSP templates
Throws:
java.lang.Exception - if there is an initialization problem

PageContainer

public PageContainer(Workspace project,
                     Context context)
              throws java.lang.Exception
Constructor for the PageContainer object. The instance created will use the provided workspace to acquire all JSP pages referenced. Each page is acquired from the source path.

Parameters:
project - this is the workspace used to compose templates
context - the context used to acquire the JSP templates
Throws:
java.lang.Exception - if there is an initialization problem
Method Detail

exists

public boolean exists(java.lang.String path)
Determines whether the named template exists. This is used to determine if the lookup method will locate a JSP template given the specified path. If the template is accessible this returns true, otherwise false is returned.

Specified by:
exists in interface Container
Parameters:
path - this is the path used to locate the JSP template
Returns:
true if the template exists, false if it does not

lookup

public Document lookup(java.lang.String path)
                throws java.lang.Exception
Looks for the named template and wraps the template within a new Document instance. Resolving the location of the template is left up the templating system, typically this requires a file path reference to locate the template.

The document created by this method is transient, that is, it is a unique instance. This means that changes to the properties of any created document object affect only that instance. By default this assumes the UTF-8 encoding.

Specified by:
lookup in interface Container
Parameters:
path - this is the path used to locate the JSP template
Returns:
the specified template wrapped within a document
Throws:
java.lang.Exception - this is thrown if the is a problem with locating or rendering the specified template

lookup

public Document lookup(java.lang.String path,
                       boolean share)
                throws java.lang.Exception
Looks for the named template and wraps the template within a new Document instance. Resolving the location of the template is left up the templating system, typically this requires a file path reference to locate the template.

The document created by this method is transient, that is, it is a unique instance. This means that changes to the properties of any created document object affect only that instance. By default this assumes the UTF-8 encoding.

Parameters:
path - this is the path used to locate the JSP template
share - should the document model be inherited or shared
Returns:
the specified template wrapped within a document
Throws:
java.lang.Exception - this is thrown if the is a problem with locating or rendering the specified template

lookup

public Document lookup(java.lang.String path,
                       java.lang.Object data,
                       boolean share)
                throws java.lang.Exception
Looks for the named template and wraps the template within a new Document instance. Resolving the location of the template is left up the templating system, typically this requires a file path reference to locate the template.

The document created by this method is transient, that is, it is a unique instance. This means that changes to the properties of any created document object affect only that instance. By default this assumes the UTF-8 encoding.

Parameters:
path - this is the path used to locate the JSP template
data - this provides a set of default properties
share - should the data model be inherited or shared
Returns:
the specified template wrapped within a document
Throws:
java.lang.Exception - this is thrown if the is a problem with locating or rendering the specified template

put

public void put(java.lang.String name,
                java.lang.Object value)
The put method is used to insert a mapping in the database that pairs the issued name with the issued value. The value can be referenced in future by its name. Properties set with this method will be set within this instances data source, which is available to subclasses.

Specified by:
put in interface Database
Parameters:
name - this is the name of the value being inserted
value - this is the named value that is inserted

get

public java.lang.Object get(java.lang.String name)
The get method is used to retrieve the value mapped to the specified name. If a value does not exist matching the given name, then this returns null. All the property values retrieved by this method are obtained from an internal source that is accessible to subclasses.

Specified by:
get in interface Database
Parameters:
name - this is the name of the value to be retrieved
Returns:
returns the value if it exists or null otherwise

remove

public void remove(java.lang.String name)
The remove method is used to remove the mapping from the database. This method either removes the value or returns silently if the name does not exist. This removes the mapping from the internal data source.

Specified by:
remove in interface Database
Parameters:
name - this is the name of the value to be removed

keySet

public java.util.Set keySet()
To ascertain what mappings exist, the names of all values previously put into this database can be retrieved with this method. This will return a Set that contains the names of all the mappings added to this.

Specified by:
keySet in interface Database
Returns:
this returns all the keys for existing mappings

contains

public boolean contains(java.lang.String name)
The contains method is used to determine if a mapping exists for the given name. This returns true if the mapping exists or false otherwise.

Specified by:
contains in interface Database
Parameters:
name - this is the name of the mapping to determine
Returns:
returns true if a mapping exists, false otherwise