diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java deleted file mode 100644 index ef6e17e..0000000 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java +++ /dev/null @@ -1,249 +0,0 @@ -package algorithm; - -import java.util.ArrayList; -import java.util.HashSet; - -import models.*; -import models.algebra.Expression; -import models.algebra.Field; -import models.algebra.InvalidMessage; -import models.algebra.Parameter; -import models.algebra.ParameterizedIdentifierIsFutureWork; -import models.algebra.Symbol; -import models.algebra.Term; -import models.algebra.Type; -import models.algebra.UnificationFailed; -import models.algebra.ValueUndefined; -import models.dataConstraintModel.ChannelMember; -import models.dataConstraintModel.DataConstraintModel; -import models.dataConstraintModel.IdentifierTemplate; -import models.dataFlowModel.*; -import models.dataFlowModel.DataflowChannelGenerator.IResourceStateAccessor; - -public class CodeGenerator { - static public ArrayList doGenerate(ResourceDependencyGraph graph) { - ArrayList codes = new ArrayList<>(); - ArrayList resources = StoreResourceCheck(graph); - IResourceStateAccessor pushAccessor = new IResourceStateAccessor() { - @Override - public Expression getCurrentStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { - if (target.equals(from)) { - return new Field(target.getResourceName(), - target.getResourceStateType() != null ? target.getResourceStateType() - : DataConstraintModel.typeInt); - } - return null; - } - - @Override - public Expression getNextStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { - return new Parameter(target.getResourceName(), - target.getResourceStateType() != null ? target.getResourceStateType() - : DataConstraintModel.typeInt); - } - }; - IResourceStateAccessor pullAccessor = new IResourceStateAccessor() { - @Override - public Expression getCurrentStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { - if (target.equals(from)) { - return new Field(target.getResourceName(), - target.getResourceStateType() != null ? target.getResourceStateType() - : DataConstraintModel.typeInt); - } - return null; - } - - @Override - public Expression getNextStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { - Term getter = new Term(new Symbol("get" + target.getResourceName(), 1, Symbol.Type.METHOD)); - getter.addChild(new Field(target.getResourceName(), target.getResourceStateType())); - return getter; - } - }; - - codes.add("public class Main {"); - for (ResourceNode n : resources) { - ResourceNode resource = (ResourceNode) n; - String str = "\t" + "private " - + resource.getIdentifierTemplate().getResourceName().substring(0, 1).toUpperCase() - + resource.getIdentifierTemplate().getResourceName().substring(1) + " " - + resource.getIdentifierTemplate().getResourceName() + " = new " - + resource.getIdentifierTemplate().getResourceName().substring(0, 1).toUpperCase() - + resource.getIdentifierTemplate().getResourceName().substring(1) + "("; - - str += ");"; - codes.add(str); - } - codes.add("}"); - codes.add(""); - for (Node n : graph.getNodes()) { - ResourceNode resource = (ResourceNode) n; - String tmp; - codes.add("public class " + resource.getIdentifierTemplate().getResourceName().substring(0, 1).toUpperCase() - + resource.getIdentifierTemplate().getResourceName().substring(1) + " {"); - if (((StoreAttribute) resource.getAttribute()).isStored()) { - for (Edge e : resource.getInEdges()) { - ResourceDependency re = (ResourceDependency) e; - for (ChannelMember cm : re.getChannelGenerator().getChannelMembers()) { - try { - Expression exp = re.getChannelGenerator().deriveUpdateExpressionOf(cm, pushAccessor); - if (exp != null) { - Parameter param = exp.getSubTerms(Parameter.class).values().iterator().next(); - codes.add("\t" + "void update(" + param.getType().getImplementastionTypeName() + " " - + param.toImplementation() + "){"); - tmp = "\t\t" + exp.toImplementation(); - codes.add(tmp); - codes.add("\t" + "}"); - } - } catch (ParameterizedIdentifierIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ResolvingMultipleDefinitionIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (InvalidMessage e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (UnificationFailed e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ValueUndefined e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - for (Edge e : resource.getOutEdges()) { - ResourceDependency re = (ResourceDependency) e; - for (ChannelMember cm : re.getChannelGenerator().getChannelMembers()) { - try { - Expression exp = re.getChannelGenerator().deriveUpdateExpressionOf(cm, pushAccessor); - if (exp != null) { - Parameter param = exp.getSubTerms(Parameter.class).values().iterator().next(); - codes.add("\t" + "void update(" + param.getType().getImplementastionTypeName() + " " - + param.toImplementation() + "){"); - tmp = "\t\t" + exp.toImplementation(); - codes.add(tmp); - codes.add("\t" + "}"); - } - } catch (ParameterizedIdentifierIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ResolvingMultipleDefinitionIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (InvalidMessage e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (UnificationFailed e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ValueUndefined e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } else { - for (Edge e : resource.getInEdges()) { - ResourceDependency re = (ResourceDependency) e; - for (ChannelMember cm : re.getChannelGenerator().getChannelMembers()) { - try { - Expression exp = re.getChannelGenerator().deriveUpdateExpressionOf(cm, pullAccessor); - if (exp != null) { - tmp = "\t" + "return " + exp.toImplementation(); - codes.add(tmp); - } - } catch (ParameterizedIdentifierIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ResolvingMultipleDefinitionIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (InvalidMessage e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (UnificationFailed e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ValueUndefined e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - for (Edge e : resource.getOutEdges()) { - ResourceDependency re = (ResourceDependency) e; - for (ChannelMember cm : re.getChannelGenerator().getChannelMembers()) { - try { - Expression exp = re.getChannelGenerator().deriveUpdateExpressionOf(cm, pullAccessor); - if (exp != null) { - tmp = "\t" + "return " + exp.toImplementation(); - tmp = "\t" + exp.toImplementation(); - codes.add(tmp); - } - } catch (ParameterizedIdentifierIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ResolvingMultipleDefinitionIsFutureWork e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (InvalidMessage e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (UnificationFailed e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (ValueUndefined e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - } - } - codes.add("}"); - codes.add(""); - } - return codes; - } - - static private ArrayList StoreResourceCheck(ResourceDependencyGraph graph) { - ArrayList resources = new ArrayList<>(); - for (Node n : graph.getNodes()) { - ResourceNode rn = (ResourceNode) n; - boolean flag = true; - for (Edge e : rn.getOutEdges()) { - ResourceDependency re = (ResourceDependency) e; - if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) { - flag = false; - } - } - for (Edge e : rn.getInEdges()) { - ResourceDependency re = (ResourceDependency) e; - if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) != PushPullValue.PUSH) { - flag = false; - } - } - if (flag) - resources.add(rn); - } - return resources; - } - - static private ArrayList trackNode(ResourceNode rn) { - ArrayList resources = new ArrayList<>(); - for (Edge e : rn.getOutEdges()) { - ResourceDependency re = (ResourceDependency) e; - if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) { - return trackNode((ResourceNode) re.getDestination()); - } - } - for (Edge e : rn.getInEdges()) { - ResourceDependency re = (ResourceDependency) e; - if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) != PushPullValue.PUSH) { - return trackNode((ResourceNode) re.getSource()); - } - } - return resources; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageDecision.java b/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageDecision.java deleted file mode 100644 index 0ca2162..0000000 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageDecision.java +++ /dev/null @@ -1,33 +0,0 @@ -package algorithm; - -import java.util.HashSet; - -import models.*; -import models.dataFlowModel.*; - -public class DataStorageDecision { - static private HashSet arrivedNode = new HashSet<>(); - - static public void run(ResourceDependencyGraph graph) { - for (Node n : graph.getNodes()) { - ResourceNode resource = (ResourceNode) n; - trackNode(resource); - } - } - - static private void trackNode(ResourceNode resource) { - if (arrivedNode.contains(resource)) - return; - arrivedNode.add(resource); - boolean flag = false; - for (Edge e : resource.getInEdges()) { - if (((PushPullAttribute) e.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) { - trackNode((ResourceNode) e.getSource()); - flag = true; - } - } - if (resource.getInEdges().size() == 0) - flag = true; - ((StoreAttribute) resource.getAttribute()).setStored(flag); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java b/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java deleted file mode 100644 index 7779e8f..0000000 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/DataStorageNecessity.java +++ /dev/null @@ -1,46 +0,0 @@ -package algorithm; - -import models.*; -import models.algebra.*; -import models.dataConstraintModel.*; -import models.dataFlowModel.*; - -public class DataStorageNecessity { - static public ResourceDependencyGraph run(DataFlowModel model) { - ResourceDependencyGraph graph = model.getResourceDependencyGraph(); - DataConstraintModel dcmodel = (DataConstraintModel) model; - for (ChannelGenerator generator : dcmodel.getChannelGenerators()) { - boolean flag = false; - for (ChannelMember member : ((DataflowChannelGenerator) generator).getOutputChannelMembers()) { - Expression curexp = member.getStateTransition().getCurStateExpression(); - Expression nextexp = member.getStateTransition().getNextStateExpression(); - for (Position pos : curexp.getVariables().keySet()) { - if (nextexp.contains(curexp.getVariables().get(pos))) { - flag = true; - } - } - } - for (Node node : graph.getNodes()) { - for (ChannelMember member : generator.getChannelMembers()) { - if (((ResourceNode) node).getIdentifierTemplate().equals(member.getIdentifierTemplate())) { - setStoreAttribute(flag, (ResourceNode) node); - } - } - } - } - for (Node node : graph.getNodes()) { - if (((ResourceNode) node).getPredecessors().size() > 1) { - setStoreAttribute(true, (ResourceNode) node); - } else if (((ResourceNode) node).getAttribute() == null) { - setStoreAttribute(false, (ResourceNode) node); - } - } - return graph; - } - - static private void setStoreAttribute(boolean flag, ResourceNode node) { - StoreAttribute store = new StoreAttribute(); - store.setNeeded(flag); - node.setAttribute(store); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java b/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java deleted file mode 100644 index 1721724..0000000 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/EdgeTransitionSelectable.java +++ /dev/null @@ -1,34 +0,0 @@ -package algorithm; - -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); } - */ - for (Edge e : ((ResourceNode) n).getInEdges()) { - ((ResourceDependency) e).setAttribute(ppat); - } - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/UpdateConflictCheck.java b/AlgebraicDataflowArchitectureModel/src/algorithm/UpdateConflictCheck.java deleted file mode 100644 index 999a747..0000000 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/UpdateConflictCheck.java +++ /dev/null @@ -1,75 +0,0 @@ -package algorithm; - -import java.util.*; - -import models.*; -import models.dataConstraintModel.*; -import models.dataFlowModel.*; - -public class UpdateConflictCheck { - private static int index = 0; - private static Deque stack = new ArrayDeque<>(); - private static Set> strong = new HashSet<>(); - private static Map ids = new HashMap<>(); - private static Map lowlink = new HashMap<>(); - private static Map onStack = new HashMap<>(); - - static private void init() { - index = 0; - stack = new ArrayDeque<>(); - strong = new HashSet<>(); - ids = new HashMap<>(); - lowlink = new HashMap<>(); - onStack = new HashMap<>(); - } - - static private void strongconnect(Node node) { - ids.put(node, index); - lowlink.put(node, index); - index++; - stack.push(node); - onStack.put(node, true); - - for (Node n : node.getSuccessors()) { - if (lowlink.containsKey(n)) { - strongconnect(n); - if (lowlink.get(node) > lowlink.get(n)) { - lowlink.replace(node, lowlink.get(n)); - } - } else if (onStack.get(n)) { - if (lowlink.get(node) > lowlink.get(n)) { - lowlink.replace(node, lowlink.get(n)); - } - } - } - if (lowlink.get(node) == ids.get(node)) { - Set tmp = new HashSet<>(); - Node w; - do { - w = stack.pop(); - onStack.replace(node, false); - tmp.add(w); - } while (node != w); - strong.add(tmp); - } - } - - static public boolean run(DataFlowModel model) { - init(); - boolean check = true; - for (Node node : model.getResourceDependencyGraph().getNodes()) { - if (ids.containsKey(node)) { - strongconnect(node); - } - } - System.out.println(strong.size() + " " + model.getResourceDependencyGraph().getNodes().size()); - /* - * for(ChannelGenerator cg:model.getChannelGenerators()) { - * DataflowChannelGenerator data = (DataflowChannelGenerator)cg; - * for(ChannelMember channel:data.getChannelMembers()) { for(ChannelMember - * another:data.getChannelMembers()) { if(!channel.equals(another)) { check = - * channel.getIdentifierTemplate() != another.getIdentifierTemplate(); } } } } - */ - return strong.size() == 0 && check; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java new file mode 100644 index 0000000..88733b5 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java @@ -0,0 +1,112 @@ +package algorithms; + +import java.util.ArrayList; +import java.util.HashSet; + +import code.ast.TypeDeclaration; +import models.*; +import models.algebra.Expression; +import models.algebra.Field; +import models.algebra.InvalidMessage; +import models.algebra.Parameter; +import models.algebra.ParameterizedIdentifierIsFutureWork; +import models.algebra.Symbol; +import models.algebra.Term; +import models.algebra.Type; +import models.algebra.UnificationFailed; +import models.algebra.ValueUndefined; +import models.dataConstraintModel.ChannelMember; +import models.dataConstraintModel.DataConstraintModel; +import models.dataConstraintModel.IdentifierTemplate; +import models.dataFlowModel.*; +import models.dataFlowModel.DataflowChannelGenerator.IResourceStateAccessor; + +public class CodeGenerator { + static public ArrayList doGenerate(ResourceDependencyGraph graph,DataFlowModel model) { + ArrayList codes = new ArrayList<>(); + ArrayList resources = StoreResourceCheck(graph); + + codes.add(new TypeDeclaration("Main")); + for(ResourceNode rn:resources) { + codes.add(new TypeDeclaration(rn.getIdentifierTemplate().getResourceName())); + } + return codes; + } + + static private ArrayList StoreResourceCheck(ResourceDependencyGraph graph) { + ArrayList resources = new ArrayList<>(); + for (Node n : graph.getNodes()) { + ResourceNode rn = (ResourceNode) n; + boolean flag = true; + for (Edge e : rn.getOutEdges()) { + ResourceDependency re = (ResourceDependency) e; + if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) { + flag = false; + } + } + for (Edge e : rn.getInEdges()) { + ResourceDependency re = (ResourceDependency) e; + if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) != PushPullValue.PUSH) { + flag = false; + } + } + if (flag) + resources.add(rn); + } + return resources; + } + + static private ArrayList trackNode(ResourceNode rn) { + ArrayList resources = new ArrayList<>(); + for (Edge e : rn.getOutEdges()) { + ResourceDependency re = (ResourceDependency) e; + if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) { + return trackNode((ResourceNode) re.getDestination()); + } + } + for (Edge e : rn.getInEdges()) { + ResourceDependency re = (ResourceDependency) e; + if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) != PushPullValue.PUSH) { + return trackNode((ResourceNode) re.getSource()); + } + } + return resources; + } + + static public IResourceStateAccessor pushAccessor = new IResourceStateAccessor() { + @Override + public Expression getCurrentStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { + if (target.equals(from)) { + return new Field(target.getResourceName(), + target.getResourceStateType() != null ? target.getResourceStateType() + : DataConstraintModel.typeInt); + } + return null; + } + + @Override + public Expression getNextStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { + return new Parameter(target.getResourceName(), + target.getResourceStateType() != null ? target.getResourceStateType() + : DataConstraintModel.typeInt); + } + }; + static public IResourceStateAccessor pullAccessor = new IResourceStateAccessor() { + @Override + public Expression getCurrentStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { + if (target.equals(from)) { + return new Field(target.getResourceName(), + target.getResourceStateType() != null ? target.getResourceStateType() + : DataConstraintModel.typeInt); + } + return null; + } + + @Override + public Expression getNextStateAccessorFor(IdentifierTemplate target, IdentifierTemplate from) { + Term getter = new Term(new Symbol("get" + target.getResourceName(), 1, Symbol.Type.METHOD)); + getter.addChild(new Field(target.getResourceName(), target.getResourceStateType())); + return getter; + } + }; +} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/DataStorageDecision.java b/AlgebraicDataflowArchitectureModel/src/algorithms/DataStorageDecision.java new file mode 100644 index 0000000..4737b4f --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/DataStorageDecision.java @@ -0,0 +1,33 @@ +package algorithms; + +import java.util.HashSet; + +import models.*; +import models.dataFlowModel.*; + +public class DataStorageDecision { + static private HashSet arrivedNode = new HashSet<>(); + + static public void run(ResourceDependencyGraph graph) { + for (Node n : graph.getNodes()) { + ResourceNode resource = (ResourceNode) n; + trackNode(resource); + } + } + + static private void trackNode(ResourceNode resource) { + if (arrivedNode.contains(resource)) + return; + arrivedNode.add(resource); + boolean flag = false; + for (Edge e : resource.getInEdges()) { + if (((PushPullAttribute) e.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) { + trackNode((ResourceNode) e.getSource()); + flag = true; + } + } + if (resource.getInEdges().size() == 0) + flag = true; + ((StoreAttribute) resource.getAttribute()).setStored(flag); + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/DataStorageNecessity.java b/AlgebraicDataflowArchitectureModel/src/algorithms/DataStorageNecessity.java new file mode 100644 index 0000000..f516910 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/DataStorageNecessity.java @@ -0,0 +1,46 @@ +package algorithms; + +import models.*; +import models.algebra.*; +import models.dataConstraintModel.*; +import models.dataFlowModel.*; + +public class DataStorageNecessity { + static public ResourceDependencyGraph run(DataFlowModel model) { + ResourceDependencyGraph graph = model.getResourceDependencyGraph(); + DataConstraintModel dcmodel = (DataConstraintModel) model; + for (ChannelGenerator generator : dcmodel.getChannelGenerators()) { + boolean flag = false; + for (ChannelMember member : ((DataflowChannelGenerator) generator).getOutputChannelMembers()) { + Expression curexp = member.getStateTransition().getCurStateExpression(); + Expression nextexp = member.getStateTransition().getNextStateExpression(); + for (Position pos : curexp.getVariables().keySet()) { + if (nextexp.contains(curexp.getVariables().get(pos))) { + flag = true; + } + } + } + for (Node node : graph.getNodes()) { + for (ChannelMember member : generator.getChannelMembers()) { + if (((ResourceNode) node).getIdentifierTemplate().equals(member.getIdentifierTemplate())) { + setStoreAttribute(flag, (ResourceNode) node); + } + } + } + } + for (Node node : graph.getNodes()) { + if (((ResourceNode) node).getPredecessors().size() > 1) { + setStoreAttribute(true, (ResourceNode) node); + } else if (((ResourceNode) node).getAttribute() == null) { + setStoreAttribute(false, (ResourceNode) node); + } + } + return graph; + } + + static private void setStoreAttribute(boolean flag, ResourceNode node) { + StoreAttribute store = new StoreAttribute(); + store.setNeeded(flag); + node.setAttribute(store); + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/EdgeTransitionSelectable.java b/AlgebraicDataflowArchitectureModel/src/algorithms/EdgeTransitionSelectable.java new file mode 100644 index 0000000..48a712a --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/EdgeTransitionSelectable.java @@ -0,0 +1,34 @@ +package algorithms; + +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); } + */ + for (Edge e : ((ResourceNode) n).getInEdges()) { + ((ResourceDependency) e).setAttribute(ppat); + } + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/UpdateConflictCheck.java b/AlgebraicDataflowArchitectureModel/src/algorithms/UpdateConflictCheck.java new file mode 100644 index 0000000..a2e7dc8 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/UpdateConflictCheck.java @@ -0,0 +1,75 @@ +package algorithms; + +import java.util.*; + +import models.*; +import models.dataConstraintModel.*; +import models.dataFlowModel.*; + +public class UpdateConflictCheck { + private static int index = 0; + private static Deque stack = new ArrayDeque<>(); + private static Set> strong = new HashSet<>(); + private static Map ids = new HashMap<>(); + private static Map lowlink = new HashMap<>(); + private static Map onStack = new HashMap<>(); + + static private void init() { + index = 0; + stack = new ArrayDeque<>(); + strong = new HashSet<>(); + ids = new HashMap<>(); + lowlink = new HashMap<>(); + onStack = new HashMap<>(); + } + + static private void strongconnect(Node node) { + ids.put(node, index); + lowlink.put(node, index); + index++; + stack.push(node); + onStack.put(node, true); + + for (Node n : node.getSuccessors()) { + if (lowlink.containsKey(n)) { + strongconnect(n); + if (lowlink.get(node) > lowlink.get(n)) { + lowlink.replace(node, lowlink.get(n)); + } + } else if (onStack.get(n)) { + if (lowlink.get(node) > lowlink.get(n)) { + lowlink.replace(node, lowlink.get(n)); + } + } + } + if (lowlink.get(node) == ids.get(node)) { + Set tmp = new HashSet<>(); + Node w; + do { + w = stack.pop(); + onStack.replace(node, false); + tmp.add(w); + } while (node != w); + strong.add(tmp); + } + } + + static public boolean run(DataFlowModel model) { + init(); + boolean check = true; + for (Node node : model.getResourceDependencyGraph().getNodes()) { + if (ids.containsKey(node)) { + strongconnect(node); + } + } + System.out.println(strong.size() + " " + model.getResourceDependencyGraph().getNodes().size()); + /* + * for(ChannelGenerator cg:model.getChannelGenerators()) { + * DataflowChannelGenerator data = (DataflowChannelGenerator)cg; + * for(ChannelMember channel:data.getChannelMembers()) { for(ChannelMember + * another:data.getChannelMembers()) { if(!channel.equals(another)) { check = + * channel.getIdentifierTemplate() != another.getIdentifierTemplate(); } } } } + */ + return strong.size() == 0 && check; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/ASTNode.java b/AlgebraicDataflowArchitectureModel/src/code/ast/ASTNode.java new file mode 100644 index 0000000..0e250a1 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/ASTNode.java @@ -0,0 +1,13 @@ +package code.ast; + +public abstract class ASTNode { + private ASTNode parent; + + public ASTNode getParent() { + return parent; + } + + public void setParent(ASTNode parent) { + this.parent = parent; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/AbstractTypeDeclaration.java b/AlgebraicDataflowArchitectureModel/src/code/ast/AbstractTypeDeclaration.java new file mode 100644 index 0000000..383962c --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/AbstractTypeDeclaration.java @@ -0,0 +1,13 @@ +package code.ast; + +public class AbstractTypeDeclaration extends BodyDeclaration { + protected String typeName = null; + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/Block.java b/AlgebraicDataflowArchitectureModel/src/code/ast/Block.java new file mode 100644 index 0000000..73e20f1 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/Block.java @@ -0,0 +1,20 @@ +package code.ast; + +import java.util.List; +import java.util.ArrayList; + +public class Block extends ASTNode { + private List statements = new ArrayList(); + + public List getStatements() { + return statements; + } + + public void setStatements(List statements) { + this.statements = statements; + } + + public void addStatement(String statement) { + statements.add(statement); + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/BodyDeclaration.java b/AlgebraicDataflowArchitectureModel/src/code/ast/BodyDeclaration.java new file mode 100644 index 0000000..812f0d7 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/BodyDeclaration.java @@ -0,0 +1,13 @@ +package code.ast; + +public abstract class BodyDeclaration extends ASTNode { + private int modifiers = 0; + + public int getModifiers() { + return modifiers; + } + + public void setModifiers(int modifiers) { + this.modifiers = modifiers; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/FieldDeclaration.java b/AlgebraicDataflowArchitectureModel/src/code/ast/FieldDeclaration.java new file mode 100644 index 0000000..ac4559e --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/FieldDeclaration.java @@ -0,0 +1,29 @@ +package code.ast; + +import models.algebra.Type; + +public class FieldDeclaration extends BodyDeclaration { + private Type type; + private String fieldName; + + public FieldDeclaration(Type type, String fieldName) { + this.type = type; + this.fieldName = fieldName; + } + + public Type getType() { + return type; + } + + public void setType(Type type) { + this.type = type; + } + + public String getName() { + return fieldName; + } + + public void setName(String fieldName) { + this.fieldName = fieldName; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/MethodDeclaration.java b/AlgebraicDataflowArchitectureModel/src/code/ast/MethodDeclaration.java new file mode 100644 index 0000000..0a7f2fa --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/MethodDeclaration.java @@ -0,0 +1,87 @@ +package code.ast; + +import java.util.List; +import java.util.ArrayList; +import models.algebra.Type; + +public class MethodDeclaration extends BodyDeclaration { + private String name = null; + private boolean isConstructor = false; + private Type returnType = null; + private List parameters = null; + private Block body = null; + + public MethodDeclaration(String methodName) { + this(methodName, false); + } + + public MethodDeclaration(String methodName, boolean isConstructor) { + this.name = methodName; + this.isConstructor = isConstructor; + } + + public MethodDeclaration(String methodName, boolean isConstructor, Type returnType, List parameters) { + this(methodName, isConstructor, returnType, parameters, null); + } + + public MethodDeclaration(String methodName, boolean isConstructor, Type returnType, List parameters, Block body) { + this(methodName, isConstructor); + this.returnType = returnType; + this.parameters = parameters; + this.body = body; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isConstructor() { + return isConstructor; + } + + public void setConstructor(boolean isConstructor) { + this.isConstructor = isConstructor; + } + + public Type getReturnType() { + return returnType; + } + + public void setReturnType(Type returnType) { + this.returnType = returnType; + } + + public List getParameters() { + return parameters; + } + + public void setParameters(List parameters) { + this.parameters = parameters; + } + + public void addParameter(VariableDeclaration parameter) { + if (parameters == null) { + parameters = new ArrayList<>(); + } + parameters.add(parameter); + } + + public Block getBody() { + return body; + } + + public void setBody(Block body) { + this.body = body; + } + + public void addStatement(String statement) { + if (body == null) { + body = new Block(); + } + body.addStatement(statement); + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/Modifier.java b/AlgebraicDataflowArchitectureModel/src/code/ast/Modifier.java new file mode 100644 index 0000000..7d1645a --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/Modifier.java @@ -0,0 +1,29 @@ +package code.ast; + +public class Modifier extends ASTNode { + public static final int ABSTRACT = 0x0400; + public static final int PRIVATE = 0x0002; + public static final int PROTECTED = 0x0004; + public static final int PUBLIC = 0x0001; + public static final int STATIC = 0x0008; + + public static boolean isAbstract(int flags) { + return (flags & ABSTRACT) != 0; + } + + public static boolean isPrivate(int flags) { + return (flags & PRIVATE) != 0; + } + + public static boolean isProtected(int flags) { + return (flags & PROTECTED) != 0; + } + + public static boolean isPublic(int flags) { + return (flags & PUBLIC) != 0; + } + + public static boolean isStatic(int flags) { + return (flags & STATIC) != 0; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/TypeDeclaration.java b/AlgebraicDataflowArchitectureModel/src/code/ast/TypeDeclaration.java new file mode 100644 index 0000000..cfbe216 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/TypeDeclaration.java @@ -0,0 +1,41 @@ +package code.ast; + +import java.util.List; +import java.util.ArrayList; + +public class TypeDeclaration extends AbstractTypeDeclaration { + private List fields = new ArrayList<>(); + private List methods = new ArrayList<>(); + + public TypeDeclaration(String typeName) { + this.typeName = typeName; + } + + public TypeDeclaration(String typeName, List fields) { + this.typeName = typeName; + this.fields = fields; + } + + public TypeDeclaration(String typeName, List fields, List methods) { + this.typeName = typeName; + this.fields = fields; + this.methods = methods; + } + + public void addField(FieldDeclaration field) { + fields.add(field); + } + + public void addMethod(MethodDeclaration method) { + methods.add(method); + } + + public List getFields() { + return fields; + } + + public List getMethods() { + return methods; + } + +} diff --git a/AlgebraicDataflowArchitectureModel/src/code/ast/VariableDeclaration.java b/AlgebraicDataflowArchitectureModel/src/code/ast/VariableDeclaration.java new file mode 100644 index 0000000..e13c92b --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/code/ast/VariableDeclaration.java @@ -0,0 +1,29 @@ +package code.ast; + +import models.algebra.Type; + +public class VariableDeclaration extends ASTNode { + private Type type; + private String variableName; + + public VariableDeclaration(Type type, String variableName) { + this.type = type; + this.variableName = variableName; + } + + public Type getType() { + return type; + } + + public void setType(Type type) { + this.type = type; + } + + public String getName() { + return variableName; + } + + public void setName(String variableName) { + this.variableName = variableName; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java index 956f4b6..7591280 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java @@ -1,10 +1,13 @@ package graphicalrefactor.actions; import java.awt.event.ActionEvent; +import java.util.ArrayList; -import algorithm.CodeGenerator; -import algorithm.DataStorageDecision; +import algorithms.CodeGenerator; +import algorithms.DataStorageDecision; +import code.ast.TypeDeclaration; import graphicalrefactor.editor.Editor; +import models.dataFlowModel.DataFlowModel; import models.dataFlowModel.ResourceDependencyGraph; public class PrototypeGenerateAction extends AbstractEditorAction { @@ -20,10 +23,11 @@ @Override public void actionPerformed(ActionEvent e) { ResourceDependencyGraph graph = editor.getResourceGraph(); + DataFlowModel model = editor.getModel(); DataStorageDecision.run(graph); - editor.setCodes(CodeGenerator.doGenerate(graph)); - for(String str:editor.getCodes()) { - System.out.println(str); + editor.setCodes(CodeGenerator.doGenerate(graph,model)); + for(TypeDeclaration str:editor.getCodes()) { + System.out.println(str.getTypeName()); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java index 229b19e..e68f321 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java @@ -18,9 +18,10 @@ import com.mxgraph.util.mxPoint; import com.mxgraph.view.mxGraph; -import algorithm.DataStorageNecessity; -import algorithm.EdgeTransitionSelectable; -import algorithm.UpdateConflictCheck; +import algorithms.DataStorageNecessity; +import algorithms.EdgeTransitionSelectable; +import algorithms.UpdateConflictCheck; +import code.ast.TypeDeclaration; import models.Edge; import models.Node; import models.dataFlowModel.DataFlowModel; @@ -50,7 +51,7 @@ private DataFlowModel model = null; private ResourceDependencyGraph resourceGraph = null; - private ArrayList codes = null; + private ArrayList codes = null; public Editor(mxGraph graph) { this.graph = graph; @@ -80,11 +81,11 @@ this.resourceGraph = resourceGraph; } - public ArrayList getCodes() { + public ArrayList getCodes() { return codes; } - public void setCodes(ArrayList codes) { + public void setCodes(ArrayList codes) { this.codes = codes; } diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/ASTNode.java b/AlgebraicDataflowArchitectureModel/src/java/ast/ASTNode.java deleted file mode 100644 index 0d600e0..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/ASTNode.java +++ /dev/null @@ -1,13 +0,0 @@ -package java.ast; - -public abstract class ASTNode { - private ASTNode parent; - - public ASTNode getParent() { - return parent; - } - - public void setParent(ASTNode parent) { - this.parent = parent; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/AbstractTypeDeclaration.java b/AlgebraicDataflowArchitectureModel/src/java/ast/AbstractTypeDeclaration.java deleted file mode 100644 index 52de580..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/AbstractTypeDeclaration.java +++ /dev/null @@ -1,13 +0,0 @@ -package java.ast; - -public class AbstractTypeDeclaration extends BodyDeclaration { - protected String typeName = null; - - public String getTypeName() { - return typeName; - } - - public void setTypeName(String typeName) { - this.typeName = typeName; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/Block.java b/AlgebraicDataflowArchitectureModel/src/java/ast/Block.java deleted file mode 100644 index 48a98c7..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/Block.java +++ /dev/null @@ -1,20 +0,0 @@ -package java.ast; - -import java.util.List; -import java.util.ArrayList; - -public class Block extends ASTNode { - private List statements = new ArrayList(); - - public List getStatements() { - return statements; - } - - public void setStatements(List statements) { - this.statements = statements; - } - - public void addStatement(String statement) { - statements.add(statement); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/BodyDeclaration.java b/AlgebraicDataflowArchitectureModel/src/java/ast/BodyDeclaration.java deleted file mode 100644 index 2bfedd7..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/BodyDeclaration.java +++ /dev/null @@ -1,13 +0,0 @@ -package java.ast; - -public abstract class BodyDeclaration extends ASTNode { - private int modifiers = 0; - - public int getModifiers() { - return modifiers; - } - - public void setModifiers(int modifiers) { - this.modifiers = modifiers; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/FieldDeclaration.java b/AlgebraicDataflowArchitectureModel/src/java/ast/FieldDeclaration.java deleted file mode 100644 index 583d3a0..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/FieldDeclaration.java +++ /dev/null @@ -1,29 +0,0 @@ -package java.ast; - -import models.algebra.Type; - -public class FieldDeclaration extends BodyDeclaration { - private Type type; - private String fieldName; - - public FieldDeclaration(Type type, String fieldName) { - this.type = type; - this.fieldName = fieldName; - } - - public Type getType() { - return type; - } - - public void setType(Type type) { - this.type = type; - } - - public String getName() { - return fieldName; - } - - public void setName(String fieldName) { - this.fieldName = fieldName; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/MethodDeclaration.java b/AlgebraicDataflowArchitectureModel/src/java/ast/MethodDeclaration.java deleted file mode 100644 index 1099dc4..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/MethodDeclaration.java +++ /dev/null @@ -1,87 +0,0 @@ -package java.ast; - -import java.util.List; -import java.util.ArrayList; -import models.algebra.Type; - -public class MethodDeclaration extends BodyDeclaration { - private String name = null; - private boolean isConstructor = false; - private Type returnType = null; - private List parameters = null; - private Block body = null; - - public MethodDeclaration(String methodName) { - this(methodName, false); - } - - public MethodDeclaration(String methodName, boolean isConstructor) { - this.name = methodName; - this.isConstructor = isConstructor; - } - - public MethodDeclaration(String methodName, boolean isConstructor, Type returnType, List parameters) { - this(methodName, isConstructor, returnType, parameters, null); - } - - public MethodDeclaration(String methodName, boolean isConstructor, Type returnType, List parameters, Block body) { - this(methodName, isConstructor); - this.returnType = returnType; - this.parameters = parameters; - this.body = body; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public boolean isConstructor() { - return isConstructor; - } - - public void setConstructor(boolean isConstructor) { - this.isConstructor = isConstructor; - } - - public Type getReturnType() { - return returnType; - } - - public void setReturnType(Type returnType) { - this.returnType = returnType; - } - - public List getParameters() { - return parameters; - } - - public void setParameters(List parameters) { - this.parameters = parameters; - } - - public void addParameter(VariableDeclaration parameter) { - if (parameters == null) { - parameters = new ArrayList<>(); - } - parameters.add(parameter); - } - - public Block getBody() { - return body; - } - - public void setBody(Block body) { - this.body = body; - } - - public void addStatement(String statement) { - if (body == null) { - body = new Block(); - } - body.addStatement(statement); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/Modifier.java b/AlgebraicDataflowArchitectureModel/src/java/ast/Modifier.java deleted file mode 100644 index 564c8f1..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/Modifier.java +++ /dev/null @@ -1,29 +0,0 @@ -package java.ast; - -public class Modifier extends ASTNode { - public static final int ABSTRACT = 0x0400; - public static final int PRIVATE = 0x0002; - public static final int PROTECTED = 0x0004; - public static final int PUBLIC = 0x0001; - public static final int STATIC = 0x0008; - - public static boolean isAbstract(int flags) { - return (flags & ABSTRACT) != 0; - } - - public static boolean isPrivate(int flags) { - return (flags & PRIVATE) != 0; - } - - public static boolean isProtected(int flags) { - return (flags & PROTECTED) != 0; - } - - public static boolean isPublic(int flags) { - return (flags & PUBLIC) != 0; - } - - public static boolean isStatic(int flags) { - return (flags & STATIC) != 0; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/TypeDeclaration.java b/AlgebraicDataflowArchitectureModel/src/java/ast/TypeDeclaration.java deleted file mode 100644 index 9e50149..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/TypeDeclaration.java +++ /dev/null @@ -1,41 +0,0 @@ -package java.ast; - -import java.util.List; -import java.util.ArrayList; - -public class TypeDeclaration extends AbstractTypeDeclaration { - private List fields = new ArrayList<>(); - private List methods = new ArrayList<>(); - - public TypeDeclaration(String typeName) { - this.typeName = typeName; - } - - public TypeDeclaration(String typeName, List fields) { - this.typeName = typeName; - this.fields = fields; - } - - public TypeDeclaration(String typeName, List fields, List methods) { - this.typeName = typeName; - this.fields = fields; - this.methods = methods; - } - - public void addField(FieldDeclaration field) { - fields.add(field); - } - - public void addMethod(MethodDeclaration method) { - methods.add(method); - } - - public List getFields() { - return fields; - } - - public List getMethods() { - return methods; - } - -} diff --git a/AlgebraicDataflowArchitectureModel/src/java/ast/VariableDeclaration.java b/AlgebraicDataflowArchitectureModel/src/java/ast/VariableDeclaration.java deleted file mode 100644 index e2ea48e..0000000 --- a/AlgebraicDataflowArchitectureModel/src/java/ast/VariableDeclaration.java +++ /dev/null @@ -1,29 +0,0 @@ -package java.ast; - -import models.algebra.Type; - -public class VariableDeclaration extends ASTNode { - private Type type; - private String variableName; - - public VariableDeclaration(Type type, String variableName) { - this.type = type; - this.variableName = variableName; - } - - public Type getType() { - return type; - } - - public void setType(Type type) { - this.type = type; - } - - public String getName() { - return variableName; - } - - public void setName(String variableName) { - this.variableName = variableName; - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java b/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java index 43dac07..b8a9afc 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java @@ -5,7 +5,7 @@ import java.io.FileNotFoundException; import java.io.FileReader; -import algorithm.*; +import algorithms.*; import models.dataFlowModel.*; import parser.*; @@ -21,9 +21,6 @@ ResourceDependencyGraph graph = DataStorageNecessity.run(model); EdgeTransitionSelectable.run(graph); DataStorageDecision.run(graph); - for (String str : CodeGenerator.doGenerate(graph)) { - System.out.println(str); - } } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression | WrongRHSExpression | ExpectedRightBracket e) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java index 173fdff..0797a33 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java @@ -5,7 +5,7 @@ import java.io.FileNotFoundException; import java.io.FileReader; -import algorithm.*; +import algorithms.*; import models.Node; import models.dataFlowModel.*; import parser.*; diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java index 3a5010f..b287390 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java @@ -5,7 +5,7 @@ import java.io.FileNotFoundException; import java.io.FileReader; -import algorithm.DataStorageNecessity; +import algorithms.DataStorageNecessity; import models.Node; import models.dataFlowModel.*; import parser.ExpectedChannel; diff --git a/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java b/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java index 4abaf06..98a88ab 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java @@ -5,7 +5,7 @@ import java.io.FileNotFoundException; import java.io.FileReader; -import algorithm.*; +import algorithms.*; import models.Edge; import models.dataFlowModel.*; import parser.*; diff --git a/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java b/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java index f025110..2816aba 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java @@ -5,7 +5,7 @@ import java.io.FileNotFoundException; import java.io.FileReader; -import algorithm.*; +import algorithms.*; import models.dataFlowModel.DataFlowModel; import parser.ExpectedChannel; import parser.ExpectedChannelName;