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