--- /dev/null
+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