diff --git a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java index ffebd73..b55fe3c 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java +++ b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java @@ -16,6 +16,7 @@ import com.mxgraph.util.mxUtils; import com.mxgraph.view.mxCellState; import models.algebra.Expression; +import models.controlFlowModel.ControlFlowGraph; import models.dataConstraintModel.Channel; import models.dataConstraintModel.ChannelMember; import models.dataConstraintModel.ResourcePath; @@ -54,15 +55,22 @@ @Override public void init(Stage prevStage) { - //ここのステージは最終的にControlFlowModelingステージの次にあたる + /* + //--------------controlFlowModelingを統合出来たらこちらを採用-------------------------------- + if (prevStage instanceof ControlFlowDelegationStage) { + model = ((ControlFlowDelegationStage) prevStage).getModel(); + + ControlFlowGraph controlFlowGraph = ((ControlFlowDelegationStage) prevStage).getControlFlowGraph(); + + dependencyFlowGraph = new DependencyFlowGraph(controlFlowGraph, model); + }*/ if (prevStage instanceof PushPullSelectionStage) { model = ((PushPullSelectionStage) prevStage).getModel(); DataFlowGraph dataFlowGraph = ((PushPullSelectionStage) prevStage).getDataFlowGraph(); + ControlFlowGraph controlFlowGraph = new ControlFlowGraph(dataFlowGraph, model); - dependencyFlowGraph = new DependencyFlowGraph(dataFlowGraph, model); - //clearGraph(); - + dependencyFlowGraph = new DependencyFlowGraph(controlFlowGraph, model); } } diff --git a/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDependencyFlowGraph.java b/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDependencyFlowGraph.java new file mode 100644 index 0000000..09f7024 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDependencyFlowGraph.java @@ -0,0 +1,20 @@ +package generators; + +import code.ast.CompilationUnit; +import models.Node; +import models.dataConstraintModel.ResourceHierarchy; +import models.dataFlowModel.DataTransferModel; +import models.dataFlowModel.IFlowGraph; +import models.dependencyModel.DependencyFlowGraph; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.Set; + +public class CodeGeneratorFromDependencyFlowGraph extends CodeGenerator{ + @Override + public void generateCodeFromFlowGraph(DataTransferModel model, IFlowGraph flowGraph, Collection> components, ArrayList codes, Map> dependedRootComponentGraph, IPlatformSpecific platformSpec, ILanguageSpecific langSpec) { + DependencyFlowGraph dependencyFlowGraph = (DependencyFlowGraph) flowGraph; + } +} diff --git a/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyFlowGraph.java b/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyFlowGraph.java index 3234898..cb2e5ba 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyFlowGraph.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dependencyModel/DependencyFlowGraph.java @@ -1,18 +1,27 @@ package models.dependencyModel; +import models.Node; +import models.controlFlowModel.ControlFlowGraph; import models.dataFlowModel.DataFlowGraph; import models.dataFlowModel.DataTransferModel; +import models.dataFlowModel.IFlowGraph; -import javax.xml.crypto.Data; +import java.util.Map; +import java.util.Set; -public class DependencyFlowGraph { +public class DependencyFlowGraph implements IFlowGraph { private DataFlowGraph dataFlowGraph; - public DependencyFlowGraph(DataFlowGraph dataFlowGraph, DataTransferModel model) { - this.dataFlowGraph = dataFlowGraph; + public DependencyFlowGraph(ControlFlowGraph controlFlowGraph, DataTransferModel model) { + this.dataFlowGraph = controlFlowGraph.getDataFlowGraph(); } public DataFlowGraph getDataFlowGraph(){ return dataFlowGraph; } + + @Override + public Map> getAllComponentNodes() { + return null; + } } \ No newline at end of file