org.apache.velocity.texen.ant

Class TexenTask

public class TexenTask extends Task

An ant task for generating output by using Velocity

Version: $Id: TexenTask.java,v 1.39.4.1 2004/03/03 23:23:07 geirm Exp $

Author: Jason van Zyl Robert Burrell Donkin

Field Summary
protected ExtendedPropertiescontextProperties

These are properties that are fed into the initial context from a properties file.

protected StringcontrolTemplate
This is the control template that governs the output.
static StringERR_MSG_FRAGMENT
This message fragment (telling users to consult the log or invoke ant with the -debug flag) is appended to rethrown exception messages.
StringfileSeparator
Path separator.
protected StringinputEncoding
This is the encoding for the input file(s) (templates).
protected StringoutputDirectory
This is where texen will place all the output that is a product of the generation process.
protected StringoutputEncoding
This is the encoding for the output file(s).
protected StringoutputFile
This is the file where the generated text will be placed.
protected StringtemplatePath
This is where Velocity will look for templates using the file template loader.
protected booleanuseClasspath
Property which controls whether the classpath will be used when trying to locate templates.
Method Summary
protected voidcleanup()
A hook method called at the end of execute which can be overridden to perform any necessary cleanup activities (such as the release of database connections, etc.).
voidexecute()
Execute the input script with Velocity
ExtendedPropertiesgetContextProperties()
Get the context properties that will be fed into the initial context be the generating process starts.
StringgetControlTemplate()
Get the control template for the generating process.
StringgetOutputDirectory()
Get the output directory.
StringgetOutputFile()
Get the output file for the generation process.
StringgetTemplatePath()
Get the path where Velocity will look for templates using the file template loader.
ContextinitControlContext()
Creates a VelocityContext.
protected voidpopulateInitialContext(Context context)

Place useful objects into the initial context.

TexenTask places Date().toString() into the context as $now.

voidsetContextProperties(String file)
Set the context properties that will be fed into the initial context be the generating process starts.
voidsetControlTemplate(String controlTemplate)
[REQUIRED] Set the control template for the generating process.
voidsetInputEncoding(String inputEncoding)
Set the input (template) encoding.
voidsetOutputDirectory(File outputDirectory)
[REQUIRED] Set the output directory.
voidsetOutputEncoding(String outputEncoding)
Set the output encoding.
voidsetOutputFile(String outputFile)
[REQUIRED] Set the output file for the generation process.
voidsetTemplatePath(String templatePath)
[REQUIRED] Set the path where Velocity will look for templates using the file template loader.
voidsetUseClasspath(boolean useClasspath)
Set the use of the classpath in locating templates

Field Detail

contextProperties

protected ExtendedProperties contextProperties

These are properties that are fed into the initial context from a properties file. This is simply a convenient way to set some values that you wish to make available in the context.

These values are not critical, like the template path or output path, but allow a convenient way to set a value that may be specific to a particular generation task.

For example, if you are generating scripts to allow user to automatically create a database, then you might want the $databaseName to be placed in the initial context so that it is available in a script that might look something like the following:

 #!bin/sh
 
 echo y | mysqladmin create $databaseName
 
The value of $databaseName isn't critical to output, and you obviously don't want to change the ant task to simply take a database name. So initial context values can be set with properties file.

controlTemplate

protected String controlTemplate
This is the control template that governs the output. It may or may not invoke the services of worker templates.

ERR_MSG_FRAGMENT

private static final String ERR_MSG_FRAGMENT
This message fragment (telling users to consult the log or invoke ant with the -debug flag) is appended to rethrown exception messages.

fileSeparator

private String fileSeparator
Path separator.

inputEncoding

protected String inputEncoding
This is the encoding for the input file(s) (templates).

outputDirectory

protected String outputDirectory
This is where texen will place all the output that is a product of the generation process.

outputEncoding

protected String outputEncoding
This is the encoding for the output file(s).

outputFile

protected String outputFile
This is the file where the generated text will be placed.

templatePath

protected String templatePath
This is where Velocity will look for templates using the file template loader.

useClasspath

protected boolean useClasspath
Property which controls whether the classpath will be used when trying to locate templates.

Method Detail

cleanup

protected void cleanup()
A hook method called at the end of execute which can be overridden to perform any necessary cleanup activities (such as the release of database connections, etc.). By default, does nothing.

Throws: Exception Problem cleaning up.

execute

public void execute()
Execute the input script with Velocity

Throws: BuildException BuildExceptions are thrown when required attributes are missing. Exceptions thrown by Velocity are rethrown as BuildExceptions.

getContextProperties

public ExtendedProperties getContextProperties()
Get the context properties that will be fed into the initial context be the generating process starts.

getControlTemplate

public String getControlTemplate()
Get the control template for the generating process.

getOutputDirectory

public String getOutputDirectory()
Get the output directory.

getOutputFile

public String getOutputFile()
Get the output file for the generation process.

getTemplatePath

public String getTemplatePath()
Get the path where Velocity will look for templates using the file template loader.

initControlContext

public Context initControlContext()
Creates a VelocityContext.

Returns: new Context

Throws: Exception the execute method will catch and rethrow as a BuildException

populateInitialContext

protected void populateInitialContext(Context context)

Place useful objects into the initial context.

TexenTask places Date().toString() into the context as $now. Subclasses who want to vary the objects in the context should override this method.

$generator is not put into the context in this method.

Parameters: context The context to populate, as retrieved from initControlContext.

Throws: Exception Error while populating context. The execute method will catch and rethrow as a BuildException.

setContextProperties

public void setContextProperties(String file)
Set the context properties that will be fed into the initial context be the generating process starts.

setControlTemplate

public void setControlTemplate(String controlTemplate)
[REQUIRED] Set the control template for the generating process.

setInputEncoding

public void setInputEncoding(String inputEncoding)
Set the input (template) encoding.

setOutputDirectory

public void setOutputDirectory(File outputDirectory)
[REQUIRED] Set the output directory. It will be created if it doesn't exist.

setOutputEncoding

public void setOutputEncoding(String outputEncoding)
Set the output encoding.

setOutputFile

public void setOutputFile(String outputFile)
[REQUIRED] Set the output file for the generation process.

setTemplatePath

public void setTemplatePath(String templatePath)
[REQUIRED] Set the path where Velocity will look for templates using the file template loader.

setUseClasspath

public void setUseClasspath(boolean useClasspath)
Set the use of the classpath in locating templates

Parameters: boolean true means the classpath will be used.

Copyright B) 2002 Apache Software Foundation. All Rights Reserved.