X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.db.layer0%2Fsrc%2Forg%2Fsimantics%2Fdb%2Flayer0%2Frequest%2FIndexedInstances.java;h=57aefa5197798d3a8a2be227dc197c8a8999d6fb;hb=refs%2Fchanges%2F58%2F3758%2F1;hp=d37805403f77f59255db1442753d1751a44bbee2;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;p=simantics%2Fplatform.git 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 d37805403..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,18 +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.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> { @@ -22,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:*" + 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)); } }