bug fixes
[mir.git] / source / mircoders / localizer / MirCachingLocalizerDecorator.java
index 340d2bd..e4f7ddd 100755 (executable)
@@ -32,7 +32,7 @@ package mircoders.localizer;
 
 import mir.generator.Generator;
 import mir.generator.WriterEngine;
-
+import mir.entity.adapter.*;
 
 public class MirCachingLocalizerDecorator implements MirLocalizer {
   private MirLocalizer localizer;
@@ -81,7 +81,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,6 +95,25 @@ public class MirCachingLocalizerDecorator implements MirLocalizer {
     return adminInterfaceLocalizer;
   };
 
+  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;