This class provides a separate new-able instance of the
Velocity template engine. The alternative model for use
is using the Velocity class which employs the singleton
model.
Please ensure that you call one of the init() variants.
This is critical for proper behavior.
Coming soon : Velocity will call
the parameter-less init() at the first use of this class
if the init() wasn't explicitly called. While this will
ensure that Velocity functions, it almost certainly won't
function in the way you intend, so please make sure to
call init().
addProperty
public void addProperty(String key,
Object value)
Add a Velocity Runtime property.
clearProperty
public void clearProperty(String key)
Clear a Velocity Runtime property.
key
- of property to clear
debug
public void debug(Object message)
Log a debug message.
error
public void error(Object message)
Log an error message.
evaluate
public boolean evaluate(Context context,
Writer writer,
String logTag,
InputStream instream)
throws ParseErrorException,
MethodInvocationException,
ResourceNotFoundException,
IOException
Use
Renders the input stream using the context into the output writer.
To be used when a template is dynamically constructed, or want to
use Velocity as a token replacer.
evaluate( Context context, Writer writer,
String logTag, Reader reader )
context
- context to use in rendering input stringlogTag
- string to be used as the template name for log messages
in case of errorinstream
- input stream containing the VTL to be rendered
- true if successful, false otherwise. If false, see
Velocity runtime log
evaluate
public boolean evaluate(Context context,
Writer writer,
String logTag,
Reader reader)
throws ParseErrorException,
MethodInvocationException,
ResourceNotFoundException,
IOException
Renders the input reader using the context into the output writer.
To be used when a template is dynamically constructed, or want to
use Velocity as a token replacer.
context
- context to use in rendering input stringlogTag
- string to be used as the template name for log messages
in case of errorreader
- Reader containing the VTL to be rendered
- true if successful, false otherwise. If false, see
Velocity runtime log
- Velocity v1.1
evaluate
public boolean evaluate(Context context,
Writer out,
String logTag,
String instring)
throws ParseErrorException,
MethodInvocationException,
ResourceNotFoundException,
IOException
renders the input string using the context into the output writer.
To be used when a template is dynamically constructed, or want to use
Velocity as a token replacer.
context
- context to use in rendering input stringout
- Writer in which to render the outputlogTag
- string to be used as the template name for log
messages in case of errorinstring
- input string containing the VTL to be rendered
- true if successful, false otherwise. If false, see
Velocity runtime log
getProperty
public Object getProperty(String key)
Get a Velocity Runtime property.
key
- property to retrieve
- property value or null if the property
not currently set
getTemplate
public Template getTemplate(String name,
String encoding)
throws ResourceNotFoundException,
ParseErrorException,
Exception
Returns a Template
from the Velocity
resource management system.
name
- The file name of the desired template.encoding
- The character encoding to use for the template.
- The template.
ResourceNotFoundException
- if template not found
from any available source.ParseErrorException
- if template cannot be parsed due
to syntax (or other) error.
- Velocity v1.1
info
public void info(Object message)
Log an info message.
init
public void init()
throws Exception
initialize the Velocity runtime engine, using the default
properties of the Velocity distribution
init
public void init(Properties p)
throws Exception
initialize the Velocity runtime engine, using default properties
plus the properties in the passed in java.util.Properties object
p
- Proprties object containing initialization properties
init
public void init(String propsFilename)
throws Exception
initialize the Velocity runtime engine, using default properties
plus the properties in the properties file passed in as the arg
propsFilename
- file containing properties to use to initialize
the Velocity runtime
invokeVelocimacro
public boolean invokeVelocimacro(String vmName,
String logTag,
params[] ,
Context context,
Writer writer)
throws Exception
Invokes a currently registered Velocimacro with the parms provided
and places the rendered stream into the writer.
Note : currently only accepts args to the VM if they are in the context.
vmName
- name of Velocimacro to calllogTag
- string to be used for template name in case of errorcontext
- Context object containing data/objects used for rendering.writer
- Writer for output stream
- true if Velocimacro exists and successfully invoked, false otherwise.
mergeTemplate
public boolean mergeTemplate(String templateName,
String encoding,
Context context,
Writer writer)
throws ResourceNotFoundException,
ParseErrorException,
MethodInvocationException,
Exception
merges a template and puts the rendered stream into the writer
templateName
- name of template to be used in mergeencoding
- encoding used in templatecontext
- filled context to be used in mergewriter
- writer to write template into
- true if successful, false otherwise. Errors
logged to velocity log
- Velocity v1.1
mergeTemplate
public boolean mergeTemplate(String templateName,
Context context,
Writer writer)
throws ResourceNotFoundException,
ParseErrorException,
MethodInvocationException,
Exception
Use
merges a template and puts the rendered stream into the writer
mergeTemplate( String templateName, String encoding,
Context context, Writer writer )
templateName
- name of template to be used in mergecontext
- filled context to be used in mergewriter
- writer to write template into
- true if successful, false otherwise. Errors
logged to velocity log.
setApplicationAttribute
public void setApplicationAttribute(Object key,
Object value)
Set the an ApplicationAttribue, which is an Object
set by the application which is accessable from
any component of the system that gets a RuntimeServices.
This allows communication between the application
environment and custom pluggable components of the
Velocity engine, such as loaders and loggers.
Note that there is no enfocement or rules for the key
used - it is up to the application developer. However, to
help make the intermixing of components possible, using
the target Class name (e.g. com.foo.bar ) as the key
might help avoid collision.
key
- object 'name' under which the object is storedvalue
- object to store under this key
setConfiguration
public void setConfiguration(Configuration configuration)
Use
Set an entire configuration at once. This is
useful in cases where the parent application uses
the Configuration class and the velocity configuration
is a subset of the parent application's configuration.
setExtendedProperties(ExtendedProperties)
setExtendedProperties
public void setExtendedProperties(ExtendedProperties configuration)
Set an entire configuration at once. This is
useful in cases where the parent application uses
the ExtendedProperties class and the velocity configuration
is a subset of the parent application's configuration.
setProperty
public void setProperty(String key,
Object value)
Set a Velocity Runtime property.
templateExists
public boolean templateExists(String templateName)
Determines if a template is accessable via the currently
configured resource loaders.
Note that the current implementation will not
change the state of the system in any real way - so this
cannot be used to pre-load the resource cache, as the
previous implementation did as a side-effect.
The previous implementation exhibited extreme lazyness and
sloth, and the author has been flogged.
templateName
- name of the temlpate to search for
- true if found, false otherwise
warn
public void warn(Object message)
Log a warning message.