diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyCodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyCodeGenerator.java index 5cf3c01..903c8f5 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyCodeGenerator.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyCodeGenerator.java @@ -103,7 +103,7 @@ param.addAnnotation(new Annotation("FormParam", "\"" + srcName + "\"")); vars.add(param); MethodDeclaration update = new MethodDeclaration("update" + srcResName, false, typeVoid, vars); - if (((StoreAttribute) rn.getAttribute()).isStored()) { + if (((StoreAttribute) rn.getAttribute()).isNeeded()) { update.addAnnotation(new Annotation("POST")); } else { update.addAnnotation(new Annotation("PUT")); diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java b/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java index db2ef4d..b533a79 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/NecessityOfStoringResourceStates.java @@ -1,5 +1,6 @@ package algorithms; +import java.util.Collection; import java.util.HashSet; import models.*; @@ -10,20 +11,20 @@ public class NecessityOfStoringResourceStates { static public ResourceDependencyGraph doDecide(DataFlowModel model) { ResourceDependencyGraph graph = model.getResourceDependencyGraph(); - DataConstraintModel dcmodel = (DataConstraintModel) model; - for (ChannelGenerator generator : dcmodel.getChannelGenerators()) { - boolean flag = false; - for (ChannelMember member : ((DataflowChannelGenerator) generator).getOutputChannelMembers()) { + Collection channels = new HashSet<>(model.getIOChannelGenerators()); + channels.addAll(model.getChannelGenerators()); + for (ChannelGenerator generator: channels) { + for (ChannelMember member: ((DataflowChannelGenerator) generator).getOutputChannelMembers()) { + boolean flag = false; 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; + break; } } - } - for (Node node : graph.getNodes()) { - for (ChannelMember member : generator.getChannelMembers()) { + for (Node node : graph.getNodes()) { if (((ResourceNode) node).getIdentifierTemplate().equals(member.getIdentifierTemplate())) { setStoreAttribute(flag, (ResourceNode) node); } @@ -31,11 +32,11 @@ } } for (Node node : graph.getNodes()) { - HashSet channels = new HashSet<>(); + HashSet inChannels = new HashSet<>(); for(Edge pre : ((ResourceNode) node).getInEdges()) { - channels.add(((ResourceDependency) pre).getChannelGenerator()); + inChannels.add(((ResourceDependency) pre).getChannelGenerator()); } - if ((channels.size() > 1)) { + if ((inChannels.size() > 1)) { setStoreAttribute(true, (ResourceNode) node); } else if (((ResourceNode) node).getAttribute() == null) { setStoreAttribute(false, (ResourceNode) node);