package mircoders.localizer.basic;
-import freemarker.template.*;
-import mir.misc.*;
-import mir.generator.*;
-import mircoders.localizer.*;
-import mircoders.global.*;
+import mir.generator.FreemarkerGenerator;
+import mir.generator.Generator;
+import mir.generator.GeneratorLibraryRepository;
+import mir.generator.WriterEngine;
+import mir.log.LoggerWrapper;
+
+import mircoders.global.MirGlobal;
+import mircoders.localizer.MirGeneratorLocalizer;
+import mircoders.localizer.MirLocalizerExc;
+import mircoders.localizer.MirLocalizerFailure;
public class MirBasicGeneratorLocalizer implements MirGeneratorLocalizer {
- protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
- private String templateRoot;
+ private GeneratorLibraryRepository repository;
+ protected LoggerWrapper logger;
+
+ public MirBasicGeneratorLocalizer () {
+ repository = new GeneratorLibraryRepository();
+ logger = new LoggerWrapper("Localizer.Basic.Generator");
+
+
+ buildRepository(repository);
+ }
- public MirBasicGeneratorLocalizer (String aTemplateRoot) {
- templateRoot = aTemplateRoot;
+ protected void buildRepository(GeneratorLibraryRepository aRepository) {
+ aRepository.registerLibraryFactory("freemarker", new FreemarkerGenerator.FreemarkerGeneratorLibraryFactory( MirGlobal.getConfigProperty("Home") ) );
}
- public Generator.GeneratorLibrary makeGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure {
- return new FreemarkerGenerator.FreemarkerGeneratorLibrary(templateRoot);
+ public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+ try {
+ return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.Producer.GeneratorLibrary"));
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t);
+ }
+ };
+
+ public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+ try {
+ return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.Admin.GeneratorLibrary"));
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t);
+ }
+ };
+
+ public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+ try {
+ return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.OpenPosting.GeneratorLibrary"));
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t);
+ }
};
- public WriterEngine makeWriterEngine() throws MirLocalizerException, MirLocalizerFailure {
+ public WriterEngine makeWriterEngine() throws MirLocalizerExc, MirLocalizerFailure {
return new MirBasicWriterEngine(MirGlobal.getConfigProperty("Mir.DefaultEncoding"));
}
}