diff --git a/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyGraph.java b/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyGraph.java index 5917a3c..c8b7145 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyGraph.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyGraph.java @@ -11,17 +11,16 @@ import models.dataFlowModel.ResourceNode; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; import java.util.Set; public class DependencyGraph extends DirectedGraph implements IFlowGraph { private final ControlFlowGraph controlFlowGraph; - protected Map statefulObjectNodeMap = null; + protected Map objectNodeMap = null; public DependencyGraph(ControlFlowGraph controlFlowGraph, DataTransferModel model) { this.controlFlowGraph = controlFlowGraph; - this.statefulObjectNodeMap = new HashMap<>(); + this.objectNodeMap = new HashMap<>(); for (Edge e : controlFlowGraph.getPushCallGraph().getEdges()) { addEdge(e.getSource(), e.getDestination()); @@ -34,14 +33,16 @@ public void addNode(ObjectNode node) { if (node instanceof EventChannelObjectNode) { EventChannelObjectNode ecoNode = (EventChannelObjectNode) node; - if (!statefulObjectNodeMap.containsKey(node)) { - statefulObjectNodeMap.put(node, ecoNode); + if (!objectNodeMap.containsKey(ecoNode)) { + ecoNode = new EventChannelObjectNode(((EventChannelObjectNode) node).getIOChannel()); + objectNodeMap.put(node, ecoNode); super.addNode(ecoNode); } } else if (node instanceof StatefulObjectNode) { StatefulObjectNode sNode = (StatefulObjectNode) node; - if (!statefulObjectNodeMap.containsKey(node)) { - statefulObjectNodeMap.put(node, sNode); + if (!objectNodeMap.containsKey(sNode)) { + sNode = new StatefulObjectNode(((StatefulObjectNode) node).getResource()); + objectNodeMap.put(node, sNode); super.addNode(sNode); } } else { @@ -57,8 +58,9 @@ } private ObjectNode getOrCreateObjectNode(ObjectNode node) { - return statefulObjectNodeMap.get(node); + return objectNodeMap.get(node); } + public DataFlowGraph getDataFlowGraph(){ return controlFlowGraph.getDataFlowGraph(); }