diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java b/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java index c9aac3e..d9dd69d 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java @@ -15,9 +15,6 @@ Expression nextexp = member.getStateTransition().getNextStateExpression(); boolean flag = false; for (Position pos : curexp.getVariables().keySet()) { - System.out.println(curexp); - System.out.println(curexp.getVariables().containsKey(pos)); - System.out.println(nextexp); if (nextexp.contains(curexp.getVariables().get(pos))) { flag = true; } diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java b/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java index 29e0563..d9268a0 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java @@ -1,5 +1,34 @@ package algorithm; -public class EdgeTransitionSelectable { +import models.*; +import models.dataFlowModel.*; +public class EdgeTransitionSelectable { + static public void run(ResourceDependencyGraph graph) { + PushPullAttribute ppat = new PushPullAttribute(); + ppat.addOption(PushPullValue.PUSHorPULL); + ppat.addOption(PushPullValue.PUSH); + ppat.addOption(PushPullValue.PULL); + for (Node n : graph.getNodes()) { + if (((StoreAttribute) ((ResourceNode) n).getAttribute()).isNeeded()) { + trackEdges(n); + } + } + for (Edge e : graph.getEdges()) { + if (((ResourceDependency) e).getAttribute() == null) { + ((ResourceDependency) e).setAttribute(ppat); + } + } + } + + static private void trackEdges(Node n) { + PushPullAttribute ppat = new PushPullAttribute(); + ppat.addOption(PushPullValue.PUSH); + for (Node pre : n.getPredecessors()) { + for (Edge in : n.getInEdges()) { + ((ResourceDependency) in).setAttribute(ppat); + } + trackEdges(pre); + } + } } diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java new file mode 100644 index 0000000..319bca2 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java @@ -0,0 +1,5 @@ +package tests; + +public class DataStorageDecisionTest { + +} diff --git a/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java b/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java new file mode 100644 index 0000000..49c574c --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java @@ -0,0 +1,5 @@ +package tests; + +public class EdgeTransitionSelectableTest { + +}