X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Frequest%2FIndexedInstances.java;fp=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Frequest%2FIndexedInstances.java;h=57aefa5197798d3a8a2be227dc197c8a8999d6fb;hp=09a1fc9021c77ee6440e93aeb84c87a68baf175d;hb=ad0e5bf4b34705988e23c9ee3f8e4fcbb760c701;hpb=0f2d6b33db9eabe0c1b142f6d0197a5d1446c3b1 diff --git a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/IndexedInstances.java b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/IndexedInstances.java index 09a1fc902..57aefa519 100644 --- a/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/IndexedInstances.java +++ b/bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/request/IndexedInstances.java @@ -1,19 +1,13 @@ package org.simantics.db.layer0.request; -import java.util.Collection; -import java.util.Collections; import java.util.HashSet; -import java.util.Map; import java.util.Set; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.request.ResourceRead2; import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.genericrelation.IndexQueries; -import org.simantics.layer0.Layer0; -import org.simantics.operation.Layer0X; -import org.simantics.scl.runtime.function.Function; +import org.simantics.db.layer0.QueryIndexUtils; public class IndexedInstances extends ResourceRead2> { @@ -23,28 +17,7 @@ public class IndexedInstances extends ResourceRead2> { @Override public Set perform(ReadGraph graph) throws DatabaseException { - - Layer0 L0 = Layer0.getInstance(graph); - Layer0X L0X = Layer0X.getInstance(graph); - - String typeName = graph.getRelatedValue(resource, L0.HasName); - - Function dependencies = graph.adapt(L0X.Dependencies, Function.class); - - Collection> results = (Collection>)dependencies.apply(graph, resource2, "Types:" + IndexQueries.quoteTerm(typeName)); - if (results == null) - return Collections.emptySet(); - - HashSet result = new HashSet(results.size()); - for(Map entry : results) { - Resource res = (Resource)entry.get("Resource"); - if(res != null) { - if (graph.isInstanceOf(res, resource)) - result.add(res); - } - } - return result; - + return new HashSet<>(QueryIndexUtils.searchByTypeShallow(graph, resource2, resource)); } }