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;
- public MirBasicGeneratorLocalizer (String aTemplateRoot) {
- templateRoot = aTemplateRoot;
+ public MirBasicGeneratorLocalizer () {
+ repository = new GeneratorLibraryRepository();
+
+ buildRepository(repository);
+ }
+
+ 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 MirLocalizerException, MirLocalizerFailure {
+ try {
+ return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.Producer.GeneratorLibrary"));
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t);
+ }
+ };
+
+ public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure {
+ try {
+ return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.Admin.GeneratorLibrary"));
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t);
+ }
+ };
+
+ public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerException, MirLocalizerFailure {
+ try {
+ return repository.constructCompositeLibrary(MirGlobal.getConfigProperty("Mir.Localizer.OpenPosting.GeneratorLibrary"));
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t);
+ }
};
public WriterEngine makeWriterEngine() throws MirLocalizerException, MirLocalizerFailure {