Package org.apache.velocity.texen
Class Generator
- java.lang.Object
-
- org.apache.velocity.texen.Generator
-
public class Generator extends java.lang.Object
A text/code generator class- Version:
- $Id: Generator.java 463298 2006-10-12 16:10:32Z henning $
- Author:
- Leon Messerschmidt, Jason van Zyl
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
inputEncoding
This is the encoding for the input file(s) (templates).static java.lang.String
OUTPUT_PATH
Where the texen output will placed.protected java.lang.String
outputEncoding
This is the encoding for the output file(s).static java.lang.String
TEMPLATE_PATH
Where the velocity templates live.protected VelocityEngine
ve
Velocity engine.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
fillContextDefaults(Context context)
Add properties that will aways be in the context by defaultprotected void
fillContextHash(Context context, java.util.Hashtable objs)
Add all the contents of a Hashtable to the context.protected void
fillContextProperties(Context context)
Add objects to the context from the current properties.protected Context
getContext(java.util.Hashtable objs)
Create a new context and fill it with the elements of the objs Hashtable.static Generator
getInstance()
Create a new generator object with default properties.java.lang.String
getOutputPath()
Get the output path for the generated output.Template
getTemplate(java.lang.String templateName, java.lang.String encoding)
Returns a template, based on encoding and path.java.lang.String
getTemplatePath()
Get the template path.java.io.Writer
getWriter(java.lang.String path, java.lang.String encoding)
Returns a writer, based on encoding and path.java.lang.String
parse(java.lang.String inputTemplate, java.lang.String outputFile)
Parse an input and write the output to an output file.java.lang.String
parse(java.lang.String inputTemplate, java.lang.String outputFile, java.lang.String objectID, java.lang.Object object)
Parse an input and write the output to an output file.java.lang.String
parse(java.lang.String inputTemplate, java.lang.String inputEncoding, java.lang.String outputFile, java.lang.String outputEncoding, java.lang.String objectID, java.lang.Object object)
Parse an input and write the output to an output file.java.lang.String
parse(java.lang.String controlTemplate, Context controlContext)
Parse the control template and merge it with the control context.protected void
setDefaultProps()
Set default properties.void
setInputEncoding(java.lang.String inputEncoding)
Set the input (template) encoding.void
setOutputEncoding(java.lang.String outputEncoding)
Set the output encoding.void
setOutputPath(java.lang.String outputPath)
Set the output path for the generated output.void
setTemplatePath(java.lang.String templatePath)
Set the template path, where Texen will look for Velocity templates.void
setVelocityEngine(VelocityEngine ve)
Set the velocity engine.void
shutdown()
Properly shut down the generator, right now this is simply flushing and closing the file writers that we have been holding on to.
-
-
-
Field Detail
-
OUTPUT_PATH
public static final java.lang.String OUTPUT_PATH
Where the texen output will placed.- See Also:
- Constant Field Values
-
TEMPLATE_PATH
public static final java.lang.String TEMPLATE_PATH
Where the velocity templates live.- See Also:
- Constant Field Values
-
outputEncoding
protected java.lang.String outputEncoding
This is the encoding for the output file(s).
-
inputEncoding
protected java.lang.String inputEncoding
This is the encoding for the input file(s) (templates).
-
ve
protected VelocityEngine ve
Velocity engine.
-
-
Constructor Detail
-
Generator
public Generator(java.lang.String propFile)
Create a new generator object with properties loaded from a file. If the file does not exist or any other exception occurs during the reading operation the default properties are used.- Parameters:
propFile
- properties used to help populate the control context.
-
Generator
public Generator(java.util.Properties props)
Create a new Generator object with a given property set. The property set will be duplicated.- Parameters:
props
- properties object to help populate the control context.
-
-
Method Detail
-
getInstance
public static Generator getInstance()
Create a new generator object with default properties.- Returns:
- Generator generator used in the control context.
-
setVelocityEngine
public void setVelocityEngine(VelocityEngine ve)
Set the velocity engine.- Parameters:
ve
-
-
setDefaultProps
protected void setDefaultProps()
Set default properties.
-
setTemplatePath
public void setTemplatePath(java.lang.String templatePath)
Set the template path, where Texen will look for Velocity templates.- Parameters:
templatePath
- template path for velocity templates.
-
getTemplatePath
public java.lang.String getTemplatePath()
Get the template path.- Returns:
- String template path for velocity templates.
-
setOutputPath
public void setOutputPath(java.lang.String outputPath)
Set the output path for the generated output.- Parameters:
outputPath
-
-
getOutputPath
public java.lang.String getOutputPath()
Get the output path for the generated output.- Returns:
- String output path for texen output.
-
setOutputEncoding
public void setOutputEncoding(java.lang.String outputEncoding)
Set the output encoding.- Parameters:
outputEncoding
-
-
setInputEncoding
public void setInputEncoding(java.lang.String inputEncoding)
Set the input (template) encoding.- Parameters:
inputEncoding
-
-
getWriter
public java.io.Writer getWriter(java.lang.String path, java.lang.String encoding) throws java.lang.Exception
Returns a writer, based on encoding and path.- Parameters:
path
- path to the output fileencoding
- output encoding- Returns:
- A Writer for this generator.
- Throws:
java.lang.Exception
-
getTemplate
public Template getTemplate(java.lang.String templateName, java.lang.String encoding) throws java.lang.Exception
Returns a template, based on encoding and path.- Parameters:
templateName
- name of the templateencoding
- template encoding- Returns:
- A Template.
- Throws:
java.lang.Exception
-
parse
public java.lang.String parse(java.lang.String inputTemplate, java.lang.String outputFile) throws java.lang.Exception
Parse an input and write the output to an output file. If the output file parameter is null or an empty string the result is returned as a string object. Otherwise an empty string is returned.- Parameters:
inputTemplate
- input templateoutputFile
- output file- Returns:
- The parsed file.
- Throws:
java.lang.Exception
-
parse
public java.lang.String parse(java.lang.String inputTemplate, java.lang.String outputFile, java.lang.String objectID, java.lang.Object object) throws java.lang.Exception
Parse an input and write the output to an output file. If the output file parameter is null or an empty string the result is returned as a string object. Otherwise an empty string is returned. You can add objects to the context with the objs Hashtable.- Parameters:
inputTemplate
- input templateoutputFile
- output fileobjectID
- id for object to be placed in the control contextobject
- object to be placed in the context- Returns:
- String generated output from velocity
- Throws:
java.lang.Exception
-
parse
public java.lang.String parse(java.lang.String inputTemplate, java.lang.String inputEncoding, java.lang.String outputFile, java.lang.String outputEncoding, java.lang.String objectID, java.lang.Object object) throws java.lang.Exception
Parse an input and write the output to an output file. If the output file parameter is null or an empty string the result is returned as a string object. Otherwise an empty string is returned. You can add objects to the context with the objs Hashtable.- Parameters:
inputTemplate
- input templateinputEncoding
- template encodingoutputFile
- output fileoutputEncoding
- outputEncoding encoding of output fileobjectID
- id for object to be placed in the control contextobject
- object to be placed in the context- Returns:
- String generated output from velocity
- Throws:
java.lang.Exception
-
parse
public java.lang.String parse(java.lang.String controlTemplate, Context controlContext) throws java.lang.Exception
Parse the control template and merge it with the control context. This is the starting point in texen.- Parameters:
controlTemplate
- control templatecontrolContext
- control context- Returns:
- String generated output
- Throws:
java.lang.Exception
-
getContext
protected Context getContext(java.util.Hashtable objs)
Create a new context and fill it with the elements of the objs Hashtable. Default objects and objects that comes from the properties of this Generator object is also added.- Parameters:
objs
- objects to place in the control context- Returns:
- Context context filled with objects
-
fillContextHash
protected void fillContextHash(Context context, java.util.Hashtable objs)
Add all the contents of a Hashtable to the context.- Parameters:
context
- context to fill with objectsobjs
- source of objects
-
fillContextDefaults
protected void fillContextDefaults(Context context)
Add properties that will aways be in the context by default- Parameters:
context
- control context to fill with default values.
-
fillContextProperties
protected void fillContextProperties(Context context)
Add objects to the context from the current properties.- Parameters:
context
- control context to fill with objects that are specified in the default.properties file
-
shutdown
public void shutdown()
Properly shut down the generator, right now this is simply flushing and closing the file writers that we have been holding on to.
-
-