-
- g.forOrderedSet(data, new AsyncMultiProcedure<Resource>() {
-
- @Override
- public void execute(AsyncReadGraph graph, final Resource component) {
+
+ if (!g.hasStatement(data)) {
+ LOGGER.warn("Most likely diagram is being removed and therefore ordered list can not be found for {}", data);
+ return new DiagramContents(); // or null, I don't know
+ }
+ Collection<Resource> components = OrderedSetUtils.toList(g, data);
+ DiagramContents res = g.syncRequest((AsyncRead<DiagramContents>)(graph, procedure) -> {
+
+ DiagramContents result = new DiagramContents();
+ procedure.execute(graph, result);
+
+ result.elements = new ArrayList<Resource>(previousElementCount);
+ result.nodeSet = new THashSet<Resource>();
+ result.connectionSet = new THashSet<Resource>();
+ result.connectionSegments = new THashSet<EdgeResource>();
+ result.branchPoints = new THashSet<Resource>();
+ result.routeGraphConnectionSet = new THashSet<Resource>();
+ result.routeLinks = new THashSet<EdgeResource>();
+ result.routeLines = new THashSet<Resource>();
+ result.routePoints = new THashSet<Resource>();
+
+ result.partToConnection = new THashMap<Object, Resource>();
+
+ for (Resource component : components) {