package mircoders.localizer;
+import mir.entity.adapter.EntityAdapterModel;
import mir.generator.Generator;
import mir.generator.WriterEngine;
-
public class MirCachingLocalizerDecorator implements MirLocalizer {
private MirLocalizer localizer;
private MirProducerLocalizer producerLocalizer;
private MirProducerAssistantLocalizer producerAssistantLocalizer;
private MirDataModelLocalizer dataModelLocalizer;
private MirAdminInterfaceLocalizer adminInterfaceLocalizer;
+ private MirMediaLocalizer mediaLocalizer;
public MirCachingLocalizerDecorator(MirLocalizer aLocalizer) {
localizer = aLocalizer;
public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerExc {
if (dataModelLocalizer==null) {
- dataModelLocalizer = localizer.dataModel();
+ dataModelLocalizer = new MirCachingDatamodelLocalizer(localizer.dataModel());
}
return dataModelLocalizer;
return adminInterfaceLocalizer;
};
+ public MirMediaLocalizer media() throws MirLocalizerFailure, MirLocalizerExc {
+ if (mediaLocalizer==null) {
+ mediaLocalizer = localizer.media();
+ }
+
+ return mediaLocalizer;
+ }
+
+ private static class MirCachingDatamodelLocalizer implements MirDataModelLocalizer {
+ private MirDataModelLocalizer master;
+ private EntityAdapterModel adapterModel;
+
+ public MirCachingDatamodelLocalizer(MirDataModelLocalizer aMaster) {
+ master = aMaster;
+ adapterModel = null;
+ }
+
+ public EntityAdapterModel adapterModel() throws MirLocalizerExc, MirLocalizerFailure {
+ if (adapterModel==null) {
+ adapterModel = master.adapterModel();
+ }
+
+ return adapterModel;
+ };
+
+ }
+
private static class MirCachingGeneratorLocalizer implements MirGeneratorLocalizer {
private MirGeneratorLocalizer master;
private WriterEngine writerEngine;
- private Generator.GeneratorLibrary producerGeneratorLibrary;
- private Generator.GeneratorLibrary adminGeneratorLibrary;
- private Generator.GeneratorLibrary openPostingGeneratorLibrary;
+ private Generator.Library producerGeneratorLibrary;
+ private Generator.Library adminGeneratorLibrary;
+ private Generator.Library openPostingGeneratorLibrary;
public MirCachingGeneratorLocalizer(MirGeneratorLocalizer aMaster) {
master = aMaster;
return writerEngine;
};
- public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+ public Generator.Library makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
if (producerGeneratorLibrary==null) {
producerGeneratorLibrary = master.makeProducerGeneratorLibrary();
}
return producerGeneratorLibrary;
};
- public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+ public Generator.Library makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
if (adminGeneratorLibrary==null) {
adminGeneratorLibrary = master.makeAdminGeneratorLibrary();
}
return adminGeneratorLibrary;
};
- public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+ public Generator.Library makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
if (openPostingGeneratorLibrary==null) {
openPostingGeneratorLibrary = master.makeOpenPostingGeneratorLibrary();
}