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;
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;
}
public void generate(Object anOutputWriter, Map aValues, final LoggerWrapper aLogger) throws GeneratorExc, GeneratorFailure {
- TALTemplate template;
+ Template template;
try {
template = library.engine.loadTemplate(templateIdentifier);
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);
}
}
}
- 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));
};
}
}