1 package org.simantics.db.indexing;
3 import java.util.Collections;
6 import org.simantics.db.ReadGraph;
7 import org.simantics.db.Resource;
8 import org.simantics.db.common.primitiverequest.Adapter;
9 import org.simantics.db.common.procedure.adapter.TransientCacheListener;
10 import org.simantics.db.common.request.BinaryRead;
11 import org.simantics.db.exception.DatabaseException;
12 import org.simantics.operation.Layer0X;
13 import org.simantics.scl.runtime.function.Function;
16 * A (cacheable) query to optimize single index queries for immutable
17 * indexes such as ontologies.
19 class QueryIndexResources extends BinaryRead<Resource, String, List<Resource>> {
21 public QueryIndexResources(Resource index, String filter) {
26 public List<Resource> perform(ReadGraph graph) throws DatabaseException {
28 Layer0X L0X = Layer0X.getInstance(graph);
30 @SuppressWarnings({ "unchecked", "rawtypes" })
31 Function dependencies = graph.syncRequest(new Adapter(L0X.DependencyResources, Function.class), TransientCacheListener.<Function>instance());
33 @SuppressWarnings("unchecked")
34 List<Resource> results = (List<Resource>)dependencies.apply(graph, parameter, parameter2);
35 if (results == null || results.isEmpty())
36 return Collections.emptyList();