diff --git a/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java index 4486d9d..925110c 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithm/CodeGenerator.java @@ -22,14 +22,19 @@ for (Node pn : resource.getSuccessors()) { str += ((ResourceNode) pn).getIdentifierTemplate().getResourceName().substring(0, 1).toUpperCase() + ((ResourceNode) pn).getIdentifierTemplate().getResourceName().substring(1) + ","; } + if(str.substring(str.length() - 1, str.length()) == ",") str = str.substring(0, str.length() - 1); } - str = str + ");"; + str += ");"; codes.add(str); } codes.add("}"); for (Node n : graph.getNodes()) { ResourceNode resource = (ResourceNode) n; - codes.add("public class " + resource.getIdentifierTemplate().getResourceName() + " {"); + codes.add("public class " + resource.getIdentifierTemplate().getResourceName().substring(0, 1) + .toUpperCase() + resource.getIdentifierTemplate().getResourceName().substring(1) + " {"); + if(((StoreAttribute) resource.getAttribute()).isStored()) { + + } codes.add("}"); } return codes; diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java index fe859cd..392dbc5 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/PrototypeGenerateAction.java @@ -2,7 +2,10 @@ import java.awt.event.ActionEvent; +import algorithm.CodeGenerator; +import algorithm.DataStorageDecision; import graphicalrefactor.editor.Editor; +import models.dataFlowModel.ResourceDependencyGraph; public class PrototypeGenerateAction extends AbstractEditorAction { /** @@ -16,6 +19,9 @@ @Override public void actionPerformed(ActionEvent e) { + ResourceDependencyGraph graph = editor.getResourceGraph(); + DataStorageDecision.run(graph); + CodeGenerator.doGenerate(graph); } } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java index fb5e265..16bf951 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/Editor.java @@ -17,6 +17,9 @@ import com.mxgraph.util.mxPoint; import com.mxgraph.view.mxGraph; +import algorithm.DataStorageNecessity; +import algorithm.EdgeTransitionSelectable; +import algorithm.UpdateConflictCheck; import models.Edge; import models.Node; import models.dataFlowModel.DataFlowModel; @@ -44,6 +47,7 @@ private mxGraph graph = null; private DataFlowModel model = null; + private ResourceDependencyGraph resourceGraph = null; public Editor(mxGraph graph) { this.graph = graph; @@ -65,12 +69,20 @@ this.model = model; } + public ResourceDependencyGraph getResourceGraph() { + return resourceGraph; + } + + public void setResourceGraph(ResourceDependencyGraph resourceGraph) { + this.resourceGraph = resourceGraph; + } + public DataFlowModel open(File file) { try { Parser parser = new Parser(new BufferedReader(new FileReader(file))); try { model = parser.doParse(); - + if(!UpdateConflictCheck.run(model)) return null; graph = constructGraph(model); return model; } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutKeyword @@ -85,8 +97,9 @@ } public mxGraph constructGraph(DataFlowModel model) { - ResourceDependencyGraph resourceDependencyGraph = model.getResourceDependencyGraph(); - + ResourceDependencyGraph resourceDependencyGraph = DataStorageNecessity.run(model); + EdgeTransitionSelectable.run(resourceDependencyGraph); + ((mxGraphModel) graph.getModel()).clear(); Object parent = graph.getDefaultParent(); graph.getModel().beginUpdate(); @@ -153,6 +166,7 @@ graph.getModel().endUpdate(); } setTreeLayout(); + setResourceGraph(resourceDependencyGraph); return graph; }