diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/SelectableDataTransfers.java b/AlgebraicDataflowArchitectureModel/src/algorithms/SelectableDataTransfers.java index cc1594b..c59e4f2 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/SelectableDataTransfers.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/SelectableDataTransfers.java @@ -9,12 +9,14 @@ public class SelectableDataTransfers { static public ResourceDependencyGraph init(ResourceDependencyGraph graph) { List nodes = new ArrayList<>(graph.getNodes()); + // set push only attributes for (Node n: graph.getNodes()) { if (nodes.contains(n) && ((StoreAttribute) ((ResourceNode) n).getAttribute()).isNeeded()) { nodes.remove(n); trackEdges(n, nodes); } } + // set push/pull attributes to the remaining edges for (Edge e : graph.getEdges()) { if (((ResourceDependency) e).getAttribute() == null) { PushPullAttribute ppat = new PushPullAttribute(); @@ -28,6 +30,7 @@ } static private void trackEdges(Node n, List nodes) { + // recursively set push only attributes to input side edges for (Edge e : ((ResourceNode) n).getInEdges()) { PushPullAttribute ppat = new PushPullAttribute(); ppat.addOption(PushPullValue.PUSH);