Package org.apache.velocity
Class Template
- java.lang.Object
-
- org.apache.velocity.runtime.resource.Resource
-
- org.apache.velocity.Template
-
- All Implemented Interfaces:
Cloneable
public class Template extends Resource implements Cloneable
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.// set up and initialize Velocity before this code block 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$
- Author:
- Jason van Zyl, Geir Magnusson Jr.
-
-
Field Summary
-
Fields inherited from class org.apache.velocity.runtime.resource.Resource
data, encoding, lastModified, log, MILLIS_PER_SECOND, modificationCheckInterval, name, nextCheck, resourceLoader, rsvc, type
-
-
Constructor Summary
Constructors Constructor Description Template()
Default constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
deepCloneData()
Deep cloning of resource dataMap<String,Object>
getMacros()
get the map of all macros defined by this templatevoid
initDocument()
initializes the document.void
merge(Context context, Writer writer)
The AST node structure is merged with the context to produce the final output.void
merge(Context context, Writer writer, List<String> macroLibraries)
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
clone, getData, getEncoding, getLastModified, getName, getResourceLoader, getType, isSourceModified, requiresChecking, setData, setEncoding, setLastModified, setModificationCheckInterval, setName, setResourceLoader, setRuntimeServices, setType, touch
-
-
-
-
Method Detail
-
getMacros
public Map<String,Object> getMacros()
get the map of all macros defined by this template- Returns:
- macros map
-
process
public boolean process() throws ResourceNotFoundException, ParseErrorException
gets the named resource as a stream, parses and inits- Specified by:
process
in classResource
- 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.
-
initDocument
public void initDocument() throws TemplateInitException
initializes the document. init() is not longer dependant upon context, but we need to let the init() carry the template name down through for VM namespace features- Throws:
TemplateInitException
- When a problem occurs during the document initialization.
-
merge
public void merge(Context context, Writer writer) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException
The AST node structure is merged with the context to produce the final output.- Parameters:
context
- Context with data elements accessed by templatewriter
- 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.MethodInvocationException
- When a method on a referenced object in the context could not invoked.
-
merge
public void merge(Context context, Writer writer, List<String> macroLibraries) throws ResourceNotFoundException, ParseErrorException, MethodInvocationException
The AST node structure is merged with the context to produce the final output.- Parameters:
context
- Context with data elements accessed by templatewriter
- output writer for rendered templatemacroLibraries
- a list of template files containing macros to be used when merging- Throws:
ResourceNotFoundException
- if template not found from any available source.ParseErrorException
- if template cannot be parsed due to syntax (or other) error.MethodInvocationException
- When a method on a referenced object in the context could not invoked.- Since:
- 1.6
-
deepCloneData
protected void deepCloneData() throws CloneNotSupportedException
Description copied from class:Resource
Deep cloning of resource data- Overrides:
deepCloneData
in classResource
- Throws:
CloneNotSupportedException
-
-