1.1 restoration
[mir.git] / source / mir / generator / TALGenerator.java
index 7be3eed..210267a 100755 (executable)
 package mir.generator;
 
 import java.io.PrintWriter;
+import java.io.File;
 import java.util.Map;
 
 import mir.generator.tal.MirExpressionParser;
-import mir.generator.tal.template.TALTemplate;
+import mir.generator.tal.template.Template;
 import mir.generator.tal.TALTemplateEngine;
 import mir.generator.tal.interfaces.TALLogger;
 import mir.log.LoggerWrapper;
@@ -41,7 +42,6 @@ import mir.log.LoggerWrapper;
 public class TALGenerator implements Generator {
   private String templateIdentifier;
   private TALGeneratorLibrary library;
-  private static LoggerWrapper logger = new LoggerWrapper("Generator.velocity");
 
   public TALGenerator(String aTemplate, TALGeneratorLibrary aLibrary) {
     templateIdentifier = aTemplate;
@@ -49,7 +49,7 @@ public class TALGenerator implements Generator {
   }
 
   public void generate(Object anOutputWriter, Map aValues, final LoggerWrapper aLogger) throws GeneratorExc, GeneratorFailure {
-    TALTemplate template;
+    Template template;
 
     try {
       template = library.engine.loadTemplate(templateIdentifier);
@@ -58,38 +58,41 @@ public class TALGenerator implements Generator {
         throw new GeneratorExc("TALGeneratorLibrary: Can't find template " + templateIdentifier);
       }
 
-      template.processTemplate(aValues, (PrintWriter) anOutputWriter,
+      template.process(aValues, (PrintWriter) anOutputWriter,
           new TALLogger() {
-        public void debug(String anObject, String aMessage) {
-          aLogger.debug(anObject + ": " + aMessage);
+            public void debug(String anObject, String aMessage) {
+              aLogger.debug(anObject + ": " + aMessage);
+            }
+
+            public void info(String anObject, String aMessage) {
+              aLogger.info(anObject + ": " + aMessage);
+            }
+
+            public void warning(String anObject, String aMessage) {
+              aLogger.warn(anObject + ": " + aMessage);
+            }
+
+            public void error(String anObject, String aMessage) {
+              aLogger.error(anObject + ": " + aMessage);
+            }
+
+            public void fatal(String anObject, String aMessage) {
+              aLogger.fatal(anObject + ": " + aMessage);
+            }
+          },
+          library.engine);
         }
-
-        public void info(String anObject, String aMessage) {
-          aLogger.info(anObject + ": " + aMessage);
-        }
-
-        public void warning(String anObject, String aMessage) {
-          aLogger.warn(anObject + ": " + aMessage);
-        }
-
-        public void error(String anObject, String aMessage) {
-          aLogger.error(anObject + ": " + aMessage);
-        }
-
-        public void fatal(String anObject, String aMessage) {
-          aLogger.fatal(anObject + ": " + aMessage);
-        }
-      });
-    }
     catch (Throwable t) {
+      ((PrintWriter) anOutputWriter).println("ERROR: " + t.toString());
+
       throw new GeneratorFailure(t);
     }
   }
 
-  public static class TALGeneratorLibrary implements GeneratorLibrary {
+  public static class TALGeneratorLibrary implements Library {
     private TALTemplateEngine engine;
 
-    public TALGeneratorLibrary(String aTemplateRoot) throws GeneratorExc, GeneratorFailure {
+    public TALGeneratorLibrary(File aTemplateRoot) throws GeneratorExc, GeneratorFailure {
       engine = new TALTemplateEngine(new MirExpressionParser(), aTemplateRoot);
     }
 
@@ -98,15 +101,15 @@ public class TALGenerator implements Generator {
     }
   }
 
-  public static class TALGeneratorLibraryFactory implements GeneratorLibraryFactory {
-    private String basePath;
+  public static class TALGeneratorLibraryFactory implements LibraryFactory {
+    private File basePath;
 
-    public TALGeneratorLibraryFactory(String aBasePath) {
+    public TALGeneratorLibraryFactory(File aBasePath) {
       basePath = aBasePath;
     }
 
-    public GeneratorLibrary makeLibrary(String anInitializationString) throws GeneratorExc, GeneratorFailure {
-      return new TALGeneratorLibrary(basePath+anInitializationString);
+    public Library makeLibrary(String anInitializationString) throws GeneratorExc, GeneratorFailure {
+      return new TALGeneratorLibrary(new File(basePath, anInitializationString));
     };
   }
 }