1 package org.simantics.db.impl;
3 import org.simantics.db.AsyncReadGraph;
4 import org.simantics.db.RelationInfo;
5 import org.simantics.db.Resource;
6 import org.simantics.db.impl.query.QueryProcessor;
7 import org.simantics.db.procedure.AsyncMultiProcedure;
9 public final class ForEachObjectProcedure implements AsyncMultiProcedure<Resource> {
11 public final int predicateKey;
12 public final int[] clusterKey;
13 public final int[] predicateReference;
14 public final RelationInfo info;
15 public final QueryProcessor processor;
16 public final ClusterI.CompleteTypeEnum completeType;
17 private final AsyncMultiProcedure<Resource> user;
19 public ForEachObjectProcedure(int predicateKey, RelationInfo info, QueryProcessor processor, AsyncMultiProcedure<Resource> user) {
20 this.predicateKey = predicateKey;
21 this.completeType = ClusterTraitsBase.getCompleteTypeFromResourceKey(predicateKey);
24 this.processor = processor;
25 this.clusterKey = new int[32*8];
26 this.predicateReference = new int[32*8];
30 public void execute(AsyncReadGraph graph, Resource result) {
31 user.execute(graph, result);
35 public void finished(AsyncReadGraph graph) {
40 public void exception(AsyncReadGraph graph, Throwable throwable) {
41 user.exception(graph, throwable);