introduced AdapterEntityModel
[mir.git] / source / mir / entity / adapter / EntityAdapter.java
index 9e3aa87..4abc774 100755 (executable)
@@ -2,16 +2,19 @@ package mir.entity.adapter;
 
 import java.util.*;
 import mir.entity.*;
+import mir.util.*;
 
 public class EntityAdapter implements Map {
   private Entity entity;
   private EntityAdapterDefinition definition;
   private Map calculatedFieldsCache;
+  private EntityAdapterModel model;
 
-  public EntityAdapter(Entity anEntity, EntityAdapterDefinition aDefinition) {
+  public EntityAdapter(Entity anEntity, EntityAdapterDefinition aDefinition, EntityAdapterModel aModel) {
     entity = anEntity;
     definition = aDefinition;
     calculatedFieldsCache = new HashMap();
+    model = aModel;
   }
 
   public boolean containsKey(Object aKey) {
@@ -40,6 +43,10 @@ public class EntityAdapter implements Map {
     return entity;
   }
 
+  public EntityAdapterModel getModel() {
+    return model;
+  }
+
   public Object get(Object aKey) {
     Object result;
 
@@ -99,4 +106,17 @@ public class EntityAdapter implements Map {
   public Set entrySet() {
     throw new UnsupportedOperationException("EntityAdapter.entrySet()");
   }
+
+  public Object getRelation(String aWhereClause, String anOrderByClause, String aDefinition) {
+    try {
+      return
+          new CachingRewindableIterator(
+            new EntityIteratorAdapter(
+                aWhereClause, anOrderByClause, -1, getModel(), aDefinition));
+    }
+    catch (Throwable t) {
+      throw new RuntimeException(t.getMessage());
+    }
+  }
+
 }
\ No newline at end of file