import org.simantics.db.VirtualGraph;
import org.simantics.db.WriteGraph;
import org.simantics.db.WriteOnlyGraph;
+import org.simantics.db.common.request.AsyncReadRequest;
import org.simantics.db.common.request.ReadRequest;
import org.simantics.db.common.request.WriteOnlyResultRequest;
import org.simantics.db.common.request.WriteResultRequest;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.procedure.AsyncMultiProcedure;
import org.simantics.db.procedure.AsyncProcedure;
+import org.simantics.db.procedure.SyncContextProcedure;
+import org.simantics.db.procedure.SyncMultiProcedure;
+import org.simantics.db.procedure.SyncProcedure;
import org.simantics.db.request.AsyncRead;
import org.simantics.db.request.Read;
import org.simantics.db.service.ClusterBuilder;
}
}
- public static Read<Object> readAsync(final Resource resource) {
+ public static AsyncRead<Object> readAsync(final Resource resource) {
if(VALIDATE) {
for(int i=0;i<244*64*64;i++) criteria.add("name");
class Process {
- final AsyncMultiProcedure<Resource> structure;
- final AsyncProcedure<String> names;
+ final SyncMultiProcedure<Resource> structure;
+ final SyncProcedure<String> names;
- Process(ReadGraph graph, Resource resource) {
+ Process(ReadGraph graph, Resource resource) throws DatabaseException {
final Layer0 L0 = Layer0.getInstance(graph);
final DirectQuerySupport dqs = graph.getService(DirectQuerySupport.class);
final QueryControl control = graph.getService(QueryControl.class);
- names = dqs.compilePossibleRelatedValue(graph, L0.HasName, new AsyncProcedure<String>() {
+ names = dqs.compilePossibleRelatedValue(graph, L0.HasName, new SyncProcedure<String>() {
@Override
- public void execute(AsyncReadGraph graph, String name) {
+ public void execute(ReadGraph graph, String name) {
if(VALIDATE) validation.add(name);
// System.err.println("af=" + name);
}
@Override
- public void exception(AsyncReadGraph graph, Throwable throwable) {
+ public void exception(ReadGraph graph, Throwable throwable) {
throwable.printStackTrace();
}
});
- structure = dqs.compileForEachObject(graph, L0.ConsistsOf, new AsyncMultiProcedure<Resource>() {
+ structure = dqs.compileForEachObject(graph, L0.ConsistsOf, new SyncMultiProcedure<Resource>() {
@Override
- public void execute(AsyncReadGraph graph, Resource child) {
- if(control.scheduleByCluster(graph, child, this)) {
+ public void execute(ReadGraph graph, Resource child) {
+ //if(control.scheduleByCluster(graph, child, this)) {
dqs.forEachObjectCompiled(graph, child, structure);
dqs.forPossibleRelatedValueCompiled(graph, child, names);
- }
+ //}
}
@Override
- public void finished(AsyncReadGraph graph) {
+ public void finished(ReadGraph graph) {
}
@Override
- public void exception(AsyncReadGraph graph, Throwable throwable) {
+ public void exception(ReadGraph graph, Throwable throwable) {
throwable.printStackTrace();
}
}
- return new ReadRequest() {
+ return new AsyncReadRequest() {
@Override
- public void run(ReadGraph graph) {
+ public void run(AsyncReadGraph graph) {
- new Process(graph, resource);
+ try {
+ new Process(graph, resource);
+ } catch (DatabaseException e) {
+ e.printStackTrace();
+ }
}
graph.forPossibleRelatedValue(resource, L0.HasName, FastStringBinding.INSTANCE, procedure2);
}
- public static ReadRequest readAsync2(final Resource resource) {
+ public static AsyncReadRequest readAsync2(final Resource resource) {
- return new ReadRequest() {
+ return new AsyncReadRequest() {
@Override
- public void run(ReadGraph graph) {
+ public void run(AsyncReadGraph graph) {
final Layer0 L0 = Layer0.getInstance(graph);
public static void readAsyncTypesLoop(final DirectQuerySupport dqs, final Layer0 L0, AsyncReadGraph graph, final Resource resource, final RelationInfo consistsOf, final AsyncMultiProcedure<Resource> procedure, final RelationInfo name, final Serializer serializer, final AsyncProcedure<String> procedure2) {
- dqs.forPossibleType(graph, resource, new AsyncProcedure<Resource>() {
+ dqs.forPossibleDirectType(graph, resource, dqs, new SyncContextProcedure<DirectQuerySupport, Resource>() {
@Override
- public void execute(AsyncReadGraph graph, Resource type) {
+ public void execute(ReadGraph graph, DirectQuerySupport dqs, Resource type) {
// System.err.println("affa");
- graph.asyncRequest(new TypeSetAndString(type), new AsyncProcedure<Pair<Set<Resource>, String>>() {
+ try {
+ graph.syncRequest(new TypeSetAndString(type), new SyncProcedure<Pair<Set<Resource>, String>>() {
- @Override
- public void execute(AsyncReadGraph graph, Pair<Set<Resource>, String> typeInfo) {
-
- Set<Resource> types = typeInfo.first;
- if(types.contains(L0.Ontology)) {
+ @Override
+ public void execute(ReadGraph graph, Pair<Set<Resource>, String> typeInfo) {
+ Set<Resource> types = typeInfo.first;
+ if(types.contains(L0.Ontology)) {
+
// dqs.forPossibleRelatedValue(graph, resource, name, serializer, new AsyncProcedure<String>() {
//
// @Override
// }
//
// });
+
+ } else if (types.contains(L0.Library)) {
+ //dqs.forEachObject(graph, resource, consistsOf, procedure);
+ }
- } else if (types.contains(L0.Library)) {
- //dqs.forEachObject(graph, resource, consistsOf, procedure);
}
-
- }
- @Override
- public void exception(AsyncReadGraph graph, Throwable throwable) {
- }
-
- });
+ @Override
+ public void exception(ReadGraph graph, Throwable throwable) {
+ }
+
+ });
+ } catch (DatabaseException e) {
+ e.printStackTrace();
+ }
}
@Override
- public void exception(AsyncReadGraph graph, Throwable throwable) {
+ public void exception(ReadGraph graph, Throwable throwable) {
}
-
+
});
@Override
public void perform(AsyncReadGraph graph, AsyncProcedure<RelationInfo> procedure) {
- dqs.forRelationInfo(graph, L0.ConsistsOf, procedure);
+ try {
+ RelationInfo ri = dqs.getRelationInfo(graph, L0.ConsistsOf);
+ procedure.execute(graph, ri);
+ } catch (DatabaseException e) {
+ procedure.exception(graph, e);
+ }
}
@Override
@Override
public void perform(AsyncReadGraph graph, AsyncProcedure<RelationInfo> procedure) {
- dqs.forRelationInfo(graph, L0.HasName, procedure);
+ try {
+ RelationInfo ri = dqs.getRelationInfo(graph, L0.HasName);
+ procedure.execute(graph, ri);
+ } catch (DatabaseException e) {
+ procedure.exception(graph, e);
+ }
}
@Override