1 package org.simantics.db.impl;
3 import org.simantics.db.ReadGraph;
4 import org.simantics.db.RelationInfo;
5 import org.simantics.db.Resource;
6 import org.simantics.db.exception.DatabaseException;
7 import org.simantics.db.impl.query.QueryProcessor;
8 import org.simantics.db.procedure.SyncContextMultiProcedure;
10 public final class ForEachObjectContextProcedure<C> implements SyncContextMultiProcedure<C, Resource> {
12 public final int predicateKey;
13 public final int[] clusterKey;
14 public final int[] predicateReference;
15 public final RelationInfo info;
16 public final QueryProcessor processor;
17 public final ClusterI.CompleteTypeEnum completeType;
18 private final SyncContextMultiProcedure<C, Resource> user;
20 public ForEachObjectContextProcedure(int predicateKey, RelationInfo info, QueryProcessor processor, SyncContextMultiProcedure<C, Resource> user) {
21 this.predicateKey = predicateKey;
22 this.completeType = ClusterTraitsBase.getCompleteTypeFromResourceKey(predicateKey);
25 this.processor = processor;
26 this.clusterKey = new int[32*8];
27 this.predicateReference = new int[32*8];
31 public void execute(ReadGraph graph, C context, Resource result) throws DatabaseException {
32 user.execute(graph, context, result);
36 public void finished(ReadGraph graph, C context) throws DatabaseException {
37 user.finished(graph, context);
41 public void exception(ReadGraph graph, Throwable throwable) throws DatabaseException {
42 user.exception(graph, throwable);