import gnu.trove.set.hash.TIntHashSet;
import org.simantics.db.Resource;
+import org.simantics.db.common.utils.Logger;
+import org.simantics.db.exception.DatabaseException;
import org.simantics.db.impl.graph.ReadGraphImpl;
import org.simantics.db.procedure.AsyncProcedure;
import org.simantics.db.procedure.ListenerBase;
}
- @Override
- public UnaryQuery<IntProcedure> getEntry(QueryProcessor provider) {
- return null;
- }
-
- @Override
- public void putEntry(QueryProcessor provider) {
- }
-
@Override
final public void removeEntry(QueryProcessor provider) {
}
}
public int size() {
-
if(single == 0) return 0;
if(set == null) return 1;
return set.size() + 1;
-
}
- // public int[] toArray() {
- //
- // int[] result = Arrays.copyOf(set.toArray(), set.size() + 1);
- // result[set.size()] = single;
- // return result;
- //
- // }
- //
-
public void forEach(TIntProcedure proc) {
if(single > 0) proc.execute(single);
if(set != null) set.forEach(proc);
}
- @Override
- public Object computeForEach(final ReadGraphImpl graph, final QueryProcessor provider, final IntProcedure procedure, final boolean store) {
+ //@Override
+ public Object compute(final ReadGraphImpl graph, final IntProcedure procedure) throws DatabaseException {
- provider.querySupport.ensureLoaded(graph, id);
- int single = provider.querySupport.getSingleSuperrelation(id);
+ QueryProcessor processor = graph.processor;
+
+ processor.querySupport.ensureLoaded(graph, id);
+ int single = processor.querySupport.getSingleSuperrelation(id);
if(single > 0) {
procedure.execute(graph, single);
procedure.finished(graph);
return single;
}
- final int subrelationOf = provider.getSubrelationOf();
+ final int subrelationOf = processor.getSubrelationOf();
- final IntSet result = new IntSet(provider.querySupport);
+ final IntSet result = new IntSet(processor.querySupport);
final class DirectProcedure extends Koss implements IntProcedure, TIntProcedure {
@Override
final DirectProcedure directProc = new DirectProcedure();
- provider.querySupport.getObjects(graph, id, subrelationOf, directProc);
+ processor.querySupport.getObjects(graph, id, subrelationOf, directProc);
int size = directProc.size();
@Override
public boolean execute(int arg0) {
- procedure.execute(graph, arg0);
+ try {
+ procedure.execute(graph, arg0);
+ } catch (DatabaseException e) {
+ Logger.defaultLogError(e);
+ }
return true;
}
@Override
public String toString() {
- return "SuperRelations2[" + id + "]";
+ return "PossibleSuperRelation[" + id + "]";
}
@Override
- public Object performFromCache(ReadGraphImpl graph, QueryProcessor provider, IntProcedure procedure) {
+ public Object performFromCache(ReadGraphImpl graph, IntProcedure procedure) {
throw new UnsupportedOperationException();
}
@Override
- public void recompute(ReadGraphImpl graph, QueryProcessor provider) {
-
+ public void recompute(ReadGraphImpl graph) {
}
}