import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.request.ParametrizedRead;
+import org.simantics.db.common.request.ResourceRead;
import org.simantics.db.exception.DatabaseException;
-import org.simantics.db.procedure.AsyncMultiProcedure;
import org.simantics.db.procedure.Procedure;
+import org.simantics.db.procedure.SyncMultiProcedure;
import org.simantics.db.request.MultiRead;
import org.simantics.db.request.Read;
import org.simantics.layer0.Layer0;
}
@Override
public void perform(ReadGraph graph,
- AsyncMultiProcedure<Resource> callback)
+ SyncMultiProcedure<Resource> callback)
throws DatabaseException {
- graph.forEachObject(subject, relation, callback);
+ for(Resource object : graph.getObjects(subject, relation)) {
+ callback.execute(graph, object);
+ }
}
@Override
public int hashCode() {
}
@Override
public Resource perform(ReadGraph graph) throws DatabaseException {
- SynchronizationProcedure<Resource> procedure = new SynchronizationProcedure<Resource>();
- graph.forPossibleObject(subject, relation, procedure);
- return procedure.getResult();
+ return graph.getPossibleObject(subject, relation);
}
@Override
public int hashCode() {
}
@Override
public Resource perform(ReadGraph graph) throws DatabaseException {
- SynchronizationProcedure<Resource> procedure = new SynchronizationProcedure<Resource>();
- graph.forSingleObject(subject, relation, procedure);
- return procedure.getResult();
+ return graph.getSingleObject(subject, relation);
}
@Override
public int hashCode() {
this.f = f;
this.g = g;
}
- public void perform(ReadGraph graph, final AsyncMultiProcedure<Y> callback) throws DatabaseException {
+ public void perform(ReadGraph graph, final SyncMultiProcedure<Y> callback) throws DatabaseException {
try {
for(X x : graph.syncRequest(g))
callback.execute(graph, graph.syncRequest(f.get(x)));
this.g = g;
}
@Override
- public void perform(ReadGraph graph, AsyncMultiProcedure<Y> callback)
+ public void perform(ReadGraph graph, SyncMultiProcedure<Y> callback)
throws DatabaseException {
graph.syncRequest(f.get(graph.syncRequest(g)), callback);
}
this.f = f;
this.g = g;
}
- public void perform(ReadGraph graph, final AsyncMultiProcedure<Y> callback) throws DatabaseException {
+ public void perform(ReadGraph graph, final SyncMultiProcedure<Y> callback) throws DatabaseException {
try {
for(X x : graph.syncRequest(g))
for(Y y : graph.syncRequest(f.get(x)))
this.value = value;
}
@Override
- public void perform(ReadGraph graph, AsyncMultiProcedure<T> callback)
+ public void perform(ReadGraph graph, SyncMultiProcedure<T> callback)
throws DatabaseException {
callback.execute(graph, value);
callback.finished(graph);
// ------------------------------------------------------------------------
- private static class Name implements Read<String> {
- Resource resource;
+ private static class Name extends ResourceRead<String> {
+
public Name(Resource resource) {
- this.resource = resource;
+ super(resource);
}
+
@Override
public String perform(ReadGraph graph) throws DatabaseException {
Layer0 L0 = Layer0.getInstance(graph);
- SynchronizationProcedure<String> procedure = new SynchronizationProcedure<String>();
- graph.forRelatedValue(resource, L0.HasName, procedure);
- return procedure.getResult();
+ return graph.getRelatedValue(resource, L0.HasName);
}
- @Override
- public int hashCode() {
- return getClass().hashCode() + 31 * resource.hashCode();
- }
- @Override
- public boolean equals(Object obj) {
- if(obj == this) return true;
- if(obj == null || obj.getClass() != getClass()) return false;
- Name other = (Name)obj;
- return resource.equals(other.resource);
- }
+
}
public static Read<String> name(Resource resource) {
return new Name(resource);