jvanzyl 00/11/03 07:28:44
Modified: src/java/org/apache/velocity/texen Generator.java
src/java/org/apache/velocity/texen/ant TexenTask.java
Log:
- made Generator a singleton, and created a controlContext to match
the controlTemplate. Everything initially placed in the controlContext
will be available in all templates during text generation.
Revision Changes Path
1.3 +22 -32
jakarta-velocity/src/java/org/apache/velocity/texen/Generator.java
Index: Generator.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/texen/Generator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Generator.java 2000/11/03 14:44:22 1.2
+++ Generator.java 2000/11/03 15:28:17 1.3
@@ -17,7 +17,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Generator.java,v 1.2 2000/11/03 14:44:22 jvanzyl Exp $
+ * @version $Id: Generator.java,v 1.3 2000/11/03 15:28:17 jvanzyl Exp $
*/
public class Generator
{
@@ -26,19 +26,24 @@
public static final String CONTEXT_STRINGS = "context.objects.strings";
public static final String CONTEXT_FILES = "context.objects.files";
- Properties props = new Properties();
+ private Properties props = new Properties();
+ private Context controlContext;
+
+ private static Generator instance = new Generator();
- //Generator instance = new Generator();
+ private Generator()
+ {
+ setDefaultProps();
+ }
/**
* Create a new generator object with default properties
*/
- public Generator ()
+ public static Generator getInstance()
{
- setDefaultProps();
+ return instance;
}
-
/**
* Create a new generator object with properties loaded from
* a file. If the file does not exist or any other exception
@@ -181,14 +186,14 @@
e.printStackTrace();
return null;
}
-
}
public String parse (String controlTemplate, Context controlContext)
throws Exception
{
- fillContextDefaults(controlContext);
- fillContextProperties(controlContext);
+ this.controlContext = controlContext;
+ fillContextDefaults(this.controlContext);
+ fillContextProperties(this.controlContext);
Template template = Runtime.getTemplate(controlTemplate);
StringWriter sw = new StringWriter();
@@ -205,13 +210,15 @@
*/
protected Context getContext (Hashtable objs)
{
- Context context = new Context();
+ //Context context = new Context();
- fillContextHash (context,objs);
- fillContextDefaults (context);
- fillContextProperties (context);
+ fillContextHash (controlContext,objs);
- return context;
+ //fillContextHash (context,objs);
+ //fillContextDefaults (context);
+ //fillContextProperties (context);
+
+ return controlContext;
}
/**
@@ -233,8 +240,7 @@
*/
protected void fillContextDefaults (Context context)
{
- Generator gen = new Generator (props);
- context.put ("generator",gen);
+ context.put ("generator", instance);
}
/**
@@ -271,20 +277,4 @@
}
}
-
- /**
- * Just 4 Testing
- */
-
- /*
- public static void main (String[] args) throws Exception
- {
- Runtime.init("velocity.properties");
- //Runtime.init();
-
- Generator gen = new Generator();
- System.out.println (gen.parse (args[0]));
- }
- */
-
}
1.2 +2 -2
jakarta-velocity/src/java/org/apache/velocity/texen/ant/TexenTask.java
Index: TexenTask.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/texen/ant/TexenTask.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TexenTask.java 2000/11/03 14:42:01 1.1
+++ TexenTask.java 2000/11/03 15:28:39 1.2
@@ -72,7 +72,7 @@
* An ant task for generating output by using Velocity
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: TexenTask.java,v 1.1 2000/11/03 14:42:01 jvanzyl Exp $
+ * @version $Id: TexenTask.java,v 1.2 2000/11/03 15:28:39 jvanzyl Exp $
*/
public abstract class TexenTask extends Task
@@ -153,7 +153,7 @@
Runtime.init();
// Create the text generator.
- Generator generator = new Generator();
+ Generator generator = Generator.getInstance();
generator.setProperty(Generator.PATH_INPUT,templatePath);
System.out.println(generator.parse(controlTemplate,
initControlContext()));