X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicGeneratorLocalizer.java;h=5beb8b2aad8968b9a4e351ae169ec5fbdb6b9121;hb=c1442585c17418ee8c6d96635a180c0a3c55ef07;hp=7501a4e2c2d7ee7d0cca8b080447629b16ea5653;hpb=8563841098b6ab3e6233f61519e58b41dcc30266;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java b/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java index 7501a4e2..5beb8b2a 100755 --- a/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicGeneratorLocalizer.java @@ -31,25 +31,61 @@ 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")); } }