org.apache.velocity

Class Template


public class Template
extends Resource

This class is used for controlling all template operations. This class uses a parser created by JavaCC to create an AST that is subsequently traversed by a Visitor.
 Template template = Velocity.getTemplate("test.wm");
 Context context = new VelocityContext();

 context.put("foo", "bar");
 context.put("customer", new Customer());

 template.merge(context, writer);
 

Version:
$Id: Template.java,v 1.35 2001/10/22 03:53:22 jon Exp $

Authors:
Jason van Zyl
Geir Magnusson Jr.

Field Summary

private Exception
errorCondition
private boolean
initialized
To keep track of whether this template has been initialized.

Fields inherited from class org.apache.velocity.runtime.resource.Resource

MILLIS_PER_SECOND, data, encoding, lastModified, modificationCheckInterval, name, nextCheck, resourceLoader, rsvc

Constructor Summary

Template()
Default constructor

Method Summary

void
initDocument()
initializes the document.
void
merge(Context context, Writer writer)
The AST node structure is merged with the context to produce the final output.
boolean
process()
gets the named resource as a stream, parses and inits

Methods inherited from class org.apache.velocity.runtime.resource.Resource

getData, getEncoding, getLastModified, getName, getResourceLoader, isSourceModified, process, requiresChecking, setData, setEncoding, setLastModified, setModificationCheckInterval, setName, setResourceLoader, setRuntimeServices, touch

Field Details

errorCondition

private Exception errorCondition


initialized

private boolean initialized
To keep track of whether this template has been initialized. We use the document.init(context) to perform this.

Constructor Details

Template

public Template()
Default constructor

Method Details

initDocument

public void initDocument()
            throws Exception
initializes the document. init() is not longer dependant upon context, but we need to let the init() carry the template name down throught for VM namespace features


merge

public void merge(Context context,
                  Writer writer)
            throws ResourceNotFoundException,
                   ParseErrorException,
                   MethodInvocationException,
                   Exception
The AST node structure is merged with the context to produce the final output. Throws IOException if failure is due to a file related issue, and Exception otherwise

Parameters:
context - Conext with data elements accessed by template
writer - output writer for rendered template

Throws:
ResourceNotFoundException - if template not found from any available source.
ParseErrorException - if template cannot be parsed due to syntax (or other) error.


process

public boolean process()
            throws ResourceNotFoundException,
                   ParseErrorException,
                   Exception
gets the named resource as a stream, parses and inits
Overrides:
process in interface Resource

Returns:
true if successful

Throws:
ResourceNotFoundException - if template not found from any available source.
ParseErrorException - if template cannot be parsed due to syntax (or other) error.


Copyright © 2003 Apache Software Foundation. All Rights Reserved.