+
+ if(node instanceof ConnectionNode) {
+
+ if (modification.svgAssignments != null && !modification.svgAssignments.isEmpty()) {
+ INode child = NodeUtil.getFirstChild(node);
+ if(child instanceof RouteGraphNode) {
+ RouteGraphNode rgn = (RouteGraphNode)child;
+ rgn.setAssignments(modification.svgAssignments);
+ }
+ }
+
+ } else if(node instanceof SingleElementNode) {
+
+ Map<SVGNode, List<SVGNodeAssignment>> assignmentMap = new HashMap<>();
+
+ if (modification.svgAssignments != null && !modification.svgAssignments.isEmpty()) {
+ for (SVGNode p : NodeUtil.collectNodes(node, SVGNode.class)) {
+ List<SVGNodeAssignment> list = assignmentMap.get(p);
+ if(list == null) {
+ list = new ArrayList<>();
+ assignmentMap.put(p, list);
+ }
+ list.addAll(modification.svgAssignments);
+ }
+ }
+
+ if(modification.targetedSVGAssignments != null && !modification.targetedSVGAssignments.isEmpty()) {
+ elements = buildSingleElementMap(node);
+ for(TargetedSVGNodeAssignment ass : modification.targetedSVGAssignments) {
+ SingleElementNode sen = elements.get(ass.singleElementKey);
+ for (SVGNode p : NodeUtil.collectNodes(sen, SVGNode.class)) {
+ List<SVGNodeAssignment> list = assignmentMap.get(p);
+ if(list == null) {
+ list = new ArrayList<>();
+ assignmentMap.put(p, list);
+ }
+ list.add(ass);
+ }
+ }
+ }
+
+ for(Map.Entry<SVGNode, List<SVGNodeAssignment>> entry : assignmentMap.entrySet()) {
+ SVGNode p = entry.getKey();
+ p.setAssignments(entry.getValue());