]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryDebugImpl.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.procore / src / fi / vtt / simantics / procore / internal / QueryDebugImpl.java
diff --git a/bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryDebugImpl.java b/bundles/org.simantics.db.procore/src/fi/vtt/simantics/procore/internal/QueryDebugImpl.java
new file mode 100644 (file)
index 0000000..bc4f4ff
--- /dev/null
@@ -0,0 +1,62 @@
+package fi.vtt.simantics.procore.internal;\r
+\r
+import java.util.HashSet;\r
+import java.util.Set;\r
+\r
+import org.simantics.db.impl.query.CacheEntry;\r
+import org.simantics.db.impl.query.CacheEntryBase;\r
+import org.simantics.db.impl.service.QueryDebug;\r
+import org.simantics.db.request.AsyncMultiRead;\r
+import org.simantics.db.request.AsyncRead;\r
+import org.simantics.db.request.MultiRead;\r
+import org.simantics.db.request.Read;\r
+\r
+public class QueryDebugImpl implements QueryDebug {\r
+       \r
+       final private SessionImplSocket session;\r
+       \r
+       QueryDebugImpl(SessionImplSocket session) {\r
+               this.session = session;\r
+       }\r
+\r
+    @Override\r
+    public Set<CacheEntry> getParents(AsyncRead request) {\r
+        HashSet<CacheEntry> result = new HashSet<CacheEntry>();\r
+        CacheEntryBase entry = session.queryProvider2.asyncReadMap.get(request);\r
+        if(entry != null) {\r
+            for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent);\r
+        }\r
+        return result;\r
+    }\r
+\r
+    @Override\r
+    public Set<CacheEntry> getParents(AsyncMultiRead request) {\r
+        HashSet<CacheEntry> result = new HashSet<CacheEntry>();\r
+        CacheEntryBase entry = session.queryProvider2.asyncMultiReadMap.get(request);\r
+        if(entry != null) {\r
+            for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent);\r
+        }\r
+        return result;\r
+    }\r
+\r
+    @Override\r
+    public Set<CacheEntry> getParents(Read request) {\r
+        HashSet<CacheEntry> result = new HashSet<CacheEntry>();\r
+        CacheEntryBase entry = session.queryProvider2.readMap.get(request);\r
+        if(entry != null) {\r
+            for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent);\r
+        }\r
+        return result;\r
+    }\r
+\r
+    @Override\r
+    public Set<CacheEntry> getParents(MultiRead request) {\r
+        HashSet<CacheEntry> result = new HashSet<CacheEntry>();\r
+        CacheEntryBase entry = session.queryProvider2.multiReadMap.get(request);\r
+        if(entry != null) {\r
+            for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent);\r
+        }\r
+        return result;\r
+    }\r
+\r
+}\r