package fi.vtt.simantics.procore.internal; import java.util.HashSet; import java.util.Set; import org.simantics.db.impl.query.CacheEntry; import org.simantics.db.impl.query.CacheEntryBase; import org.simantics.db.impl.service.QueryDebug; import org.simantics.db.request.AsyncMultiRead; import org.simantics.db.request.AsyncRead; import org.simantics.db.request.MultiRead; import org.simantics.db.request.Read; public class QueryDebugImpl implements QueryDebug { final private SessionImplSocket session; QueryDebugImpl(SessionImplSocket session) { this.session = session; } @Override public Set getParents(AsyncRead request) { HashSet result = new HashSet(); CacheEntryBase entry = session.queryProvider2.asyncReadMap.get(request); if(entry != null) { for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent); } return result; } @Override public Set getParents(AsyncMultiRead request) { HashSet result = new HashSet(); CacheEntryBase entry = session.queryProvider2.asyncMultiReadMap.get(request); if(entry != null) { for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent); } return result; } @Override public Set getParents(Read request) { HashSet result = new HashSet(); CacheEntryBase entry = session.queryProvider2.readMap.get(request); if(entry != null) { for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent); } return result; } @Override public Set getParents(MultiRead request) { HashSet result = new HashSet(); CacheEntryBase entry = session.queryProvider2.multiReadMap.get(request); if(entry != null) { for(CacheEntry parent : entry.getParents(session.queryProvider2)) result.add(parent); } return result; } }