diff --git a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java index 6a90bf9..0cff3b8 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java +++ b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java @@ -22,7 +22,7 @@ import java.util.*; public class DependencyModelingStage extends Stage { - + static { mxGraphics2DCanvas.putShape("interface", new mxInterfaceShape()); mxStyleRegistry.putValue("interfacePerimeter", new mxInterfacePerimeter()); @@ -112,6 +112,10 @@ private HashMap buildStatefulObjectNodeMap(Stage prevStage) { HashMap result = new HashMap<>(); + Map nodeMap = new HashMap<>(); + for (StatefulObjectNode node : dependencyGraph.getStatefulObjectNodes()) { + nodeMap.put(node.getResource(), node); + } Map rootMap = new HashMap<>(); for (StatefulObjectNode root : dependencyGraph.getRootStatefulObjectNodes()) { rootMap.put(root.getResource(), root); @@ -122,9 +126,18 @@ if (cell == null) continue; - StatefulObjectNode stateful = - rootMap.getOrDefault(node, new StatefulObjectNode(node)); - result.put(stateful, cell); + StatefulObjectNode statefulRoot = rootMap.get(node); + StatefulObjectNode statefulNode = nodeMap.get(node); + + if (statefulRoot != null) { + result.put(statefulRoot, cell); + } + else if(statefulNode != null) { + result.put(statefulNode, cell); + }else { + result.put(new StatefulObjectNode(node), cell); + System.out.println("DependencyGraph に StatefulObjectNode が存在しません:" + rootMap.get(node)); + } } return result;