diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java index 8050a97..87f7f8a 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/CodeGenerator.java @@ -18,8 +18,32 @@ for (ResourceNode rn : resources) { String name = rn.getIdentifierTemplate().getResourceName().substring(0, 1).toUpperCase() + rn.getIdentifierTemplate().getResourceName().substring(1); - codes.get(0).addField(new FieldDeclaration(new Type(name, name), rn.getIdentifierTemplate().getResourceName())); - codes.add(new TypeDeclaration(name)); + FieldDeclaration field = new FieldDeclaration(new Type(name, name), + rn.getIdentifierTemplate().getResourceName()); + TypeDeclaration type = new TypeDeclaration(name); + codes.get(0).addField(field); + for (Edge e : rn.getOutEdges()) { + ResourceDependency re = (ResourceDependency) e; + String rename = ((ResourceNode) re.getDestination()).getIdentifierTemplate().getResourceName() + .substring(0, 1).toUpperCase() + + ((ResourceNode) re.getDestination()).getIdentifierTemplate().getResourceName().substring(1); + if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) == PushPullValue.PUSH) + type.addField(new FieldDeclaration(new Type(rename, rename), + ((ResourceNode) re.getDestination()).getIdentifierTemplate().getResourceName())); + } + for (Edge e : rn.getInEdges()) { + ResourceDependency re = (ResourceDependency) e; + String rename = ((ResourceNode) re.getDestination()).getIdentifierTemplate().getResourceName() + .substring(0, 1).toUpperCase() + + ((ResourceNode) re.getDestination()).getIdentifierTemplate().getResourceName().substring(1); + if (((PushPullAttribute) re.getAttribute()).getOptions().get(0) != PushPullValue.PUSH) + type.addField(new FieldDeclaration(new Type(rename, rename), + ((ResourceNode) re.getDestination()).getIdentifierTemplate().getResourceName())); + } + if (((StoreAttribute) rn.getAttribute()).isStored()) + type.addField(new FieldDeclaration(DataConstraintModel.typeInt, + rn.getIdentifierTemplate().getResourceName())); + codes.add(type); } return codes;