1.1 restoration
[mir.git] / source / mircoders / localizer / MirCachingLocalizerDecorator.java
index 340d2bd..e2165af 100755 (executable)
 
 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;
@@ -42,6 +42,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
   private MirProducerAssistantLocalizer producerAssistantLocalizer;
   private MirDataModelLocalizer dataModelLocalizer;
   private MirAdminInterfaceLocalizer adminInterfaceLocalizer;
+  private MirMediaLocalizer mediaLocalizer;
 
   public MirCachingLocalizerDecorator(MirLocalizer aLocalizer) {
     localizer = aLocalizer;
@@ -81,7 +82,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
 
   public MirDataModelLocalizer dataModel() throws MirLocalizerFailure, MirLocalizerExc {
     if (dataModelLocalizer==null) {
-      dataModelLocalizer = localizer.dataModel();
+      dataModelLocalizer = new MirCachingDatamodelLocalizer(localizer.dataModel());
     }
 
     return dataModelLocalizer;
@@ -95,12 +96,39 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
     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;
@@ -114,7 +142,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
       return writerEngine;
     };
 
-    public Generator.GeneratorLibrary makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+    public Generator.Library makeProducerGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
       if (producerGeneratorLibrary==null) {
         producerGeneratorLibrary = master.makeProducerGeneratorLibrary();
       }
@@ -122,7 +150,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
       return producerGeneratorLibrary;
     };
 
-    public Generator.GeneratorLibrary makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+    public Generator.Library makeAdminGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
       if (adminGeneratorLibrary==null) {
         adminGeneratorLibrary = master.makeAdminGeneratorLibrary();
       }
@@ -130,7 +158,7 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
       return adminGeneratorLibrary;
     };
 
-    public Generator.GeneratorLibrary makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
+    public Generator.Library makeOpenPostingGeneratorLibrary() throws MirLocalizerExc, MirLocalizerFailure {
       if (openPostingGeneratorLibrary==null) {
         openPostingGeneratorLibrary = master.makeOpenPostingGeneratorLibrary();
       }