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()));
  
  
  

Reply via email to