diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour.java index 063d06b..a7acf75 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour.java @@ -9,23 +9,20 @@ @Path("/hour") @Component public class Hour { - private double value = 0.0; + private int value = 0; @Produces(MediaType.APPLICATION_JSON) @GET - public double getValue() { + public int getValue() { return value; } @POST - public void updateFromMin(@FormParam("min") double min) { - double temp_if2; + public void updateFromMin(@FormParam("min") int min) { + int temp_if0; if ((min==0)) { - temp_if2 = ((this.value+1)%24); + temp_if0 = ((this.value+1)%24); } else { - temp_if2 = this.value; + temp_if0 = this.value; } - this.value = temp_if2; - } - public Hour(double hour) { - this.hour = hour; + this.value = temp_if0; } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour_ang.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour_ang.java index d237f76..9c14018 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour_ang.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Hour_ang.java @@ -13,7 +13,7 @@ @Produces(MediaType.APPLICATION_JSON) @GET public double getValue() { - double hour = client.target("http://localhost:8080").path("/hour").request().get(double.class); + int hour = client.target("http://localhost:8080").path("/hour").request().get(int.class); return ((hour/6)*Math.PI); } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min.java index a4589a3..db4cea5 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min.java @@ -9,20 +9,17 @@ @Path("/min") @Component public class Min { - private double value = 0.0; + private int value = 0; private Client client = ClientBuilder.newClient(); @Produces(MediaType.APPLICATION_JSON) @GET - public double getValue() { + public int getValue() { return value; } - public Min(double min) { - this.min = min; - } @POST public void tick() throws JsonProcessingException { Form form = new Form(); - form.param("min", Double.toString(this.value)); + form.param("min", Integer.toString(this.value)); Entity
entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); String result = client.target("http://localhost:8080").path("/hour").request().post(entity, String.class); this.value = ((this.value+1)%60); diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min_ang.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min_ang.java index 172cca8..96ae12b 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min_ang.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PULL-first/Min_ang.java @@ -13,7 +13,7 @@ @Produces(MediaType.APPLICATION_JSON) @GET public double getValue() { - double min = client.target("http://localhost:8080").path("/min").request().get(double.class); + int min = client.target("http://localhost:8080").path("/min").request().get(int.class); return ((min/30)*Math.PI); } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour.java index 7733bfe..12f10e1 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour.java @@ -18,19 +18,16 @@ } @POST public void updateFromMin(@FormParam("min") double min) throws JsonProcessingException { - double temp_if3; + double temp_if1; if ((min==0)) { - temp_if3 = ((this.value+1)%24); + temp_if1 = ((this.value+1)%24); } else { - temp_if3 = this.value; + temp_if1 = this.value; } - this.value = temp_if3; + this.value = temp_if1; Form form = new Form(); form.param("hour", Double.toString(this.value)); Entity entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); String result = client.target("http://localhost:8080").path("/hour_ang").request().put(entity, String.class); } - public Hour(double hour) { - this.hour = hour; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour_ang.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour_ang.java index 45c2864..5412a9a 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour_ang.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Hour_ang.java @@ -19,7 +19,4 @@ public void updateFromHour(@FormParam("hour") double hour) { this.value = ((hour/6)*Math.PI); } - public Hour_ang(double hour_ang) { - this.hour_ang = hour_ang; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min.java index b72f252..f068cb6 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min.java @@ -16,9 +16,6 @@ public double getValue() { return value; } - public Min(double min) { - this.min = min; - } @POST public void tick() throws JsonProcessingException { Form form = new Form(); diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min_ang.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min_ang.java index be7e6fb..b467b97 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min_ang.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/Clock/PUSH-first/Min_ang.java @@ -19,7 +19,4 @@ public void updateFromMin(@FormParam("min") double min) { this.value = ((min/30)*Math.PI); } - public Min_ang(double min_ang) { - this.min_ang = min_ang; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/History.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/History.java index 2038cd4..92776d5 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/History.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/History.java @@ -9,17 +9,14 @@ @Path("/history") @Component public class History { - private List value = new ArrayList<>(); + private List value = new ArrayList<>(); @Produces(MediaType.APPLICATION_JSON) @GET - public List getValue() { + public List getValue() { return value; } @POST - public void updateFromPayment(@FormParam("payment") double payment) { + public void updateFromPayment(@FormParam("payment") int payment) { this.value.add(0, payment); } - public History(List history) { - this.history = history; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Payment.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Payment.java index 95332ef..a694ab6 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Payment.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Payment.java @@ -9,20 +9,17 @@ @Path("/payment") @Component public class Payment { - private double value = 0.0; + private int value = 0; private Client client = ClientBuilder.newClient(); @Produces(MediaType.APPLICATION_JSON) @GET - public double getValue() { + public int getValue() { return value; } - public Payment(double payment) { - this.payment = payment; - } @PUT - public void purchase(@FormParam("x") double x) throws JsonProcessingException { + public void purchase(@FormParam("x") int x) throws JsonProcessingException { Form form = new Form(); - form.param("payment", Double.toString(this.value)); + form.param("payment", Integer.toString(this.value)); Entity entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); String result = client.target("http://localhost:8080").path("/history").request().post(entity, String.class); this.value = x; diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Points.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Points.java index c557cf6..f7ac799 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Points.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Points.java @@ -13,7 +13,7 @@ @Produces(MediaType.APPLICATION_JSON) @GET public int getValue() { - double payment = client.target("http://localhost:8080").path("/payment").request().get(double.class); + int payment = client.target("http://localhost:8080").path("/payment").request().get(int.class); return (int)Math.floor((payment*0.05)); } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Total.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Total.java index 69d4735..87b8845 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Total.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PULL-first/Total.java @@ -13,7 +13,7 @@ @Produces(MediaType.APPLICATION_JSON) @GET public int getValue() { - List history = client.target("http://localhost:8080").path("/history").request().get(ArrayList.class); + List history = client.target("http://localhost:8080").path("/history").request().get(ArrayList.class); Integer temp_sum1 = 0; for (Integer x: history) { temp_sum1 += x; diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/History.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/History.java index 2a571d3..e6c5c7f 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/History.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/History.java @@ -19,7 +19,6 @@ @POST public void updateFromPayment(@FormParam("payment") double payment) throws JsonProcessingException { this.value.add(0, payment); - Form form = new Form(); for (Double i: this.value) { form.param("history", i.toString()); @@ -27,7 +26,4 @@ Entity entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED); String result = client.target("http://localhost:8080").path("/total").request().put(entity, String.class); } - public History(List history) { - this.history = history; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Payment.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Payment.java index 18e64ef..5d65395 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Payment.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Payment.java @@ -16,9 +16,6 @@ public double getValue() { return value; } - public Payment(double payment) { - this.payment = payment; - } @PUT public void purchase(@FormParam("x") double x) throws JsonProcessingException { Form form = new Form(); diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Points.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Points.java index 7dc8d20..7071bf0 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Points.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Points.java @@ -19,7 +19,4 @@ public void updateFromPayment(@FormParam("payment") double payment) { this.value = (int)Math.floor((payment*0.05)); } - public Points(int points) { - this.points = points; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Total.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Total.java index e91f4e7..0fdd957 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Total.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/POS/PUSH-first/Total.java @@ -23,7 +23,4 @@ } this.value = temp_sum1; } - public Total(int total) { - this.total = total; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Accounts.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Accounts.java index 90e5808..ab6b793 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Accounts.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Accounts.java @@ -18,6 +18,12 @@ public Account getAccount(String aid) { return this.value.get(aid); } + @Path("/{aid}/vote") + @Produces(MediaType.APPLICATION_JSON) + @GET + public String getVoteValue(@PathParam("aid") String aid) { + return getAccount(aid).getVote(); + } @Path("/{aid}") @Produces(MediaType.APPLICATION_JSON) @GET @@ -25,18 +31,12 @@ return getAccount(aid).getValue(); } @Path("/{aid}/vote") - @Produces(MediaType.APPLICATION_JSON) - @GET - public String getVoteValue(@PathParam("aid") String aid) { - return getAccount(aid).getVote(); + @PUT + public void cast(@PathParam("aid") String aid, @FormParam("v") String v) { + getAccount(aid).cast(aid, v); } @POST public void signUp(@FormParam("name") String name, @FormParam("aid") String aid) { this.value.put(aid,new Account(null)); } - @Path("/{aid}/vote") - @PUT - public void cast(@PathParam("aid") String aid, @FormParam("v") String v) { - getAccount(aid).cast(aid, v); - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Counts.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Counts.java index f841a6f..9baed06 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Counts.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/VotingSystem/Counts.java @@ -24,7 +24,4 @@ } return v0; } - public Counts(Map counts) { - this.counts = counts; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Highest.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Highest.java index 71afbf6..0b95991 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Highest.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Highest.java @@ -17,16 +17,13 @@ } @POST public void updateFromTemp_f(@FormParam("temp_f") double temp_f) { - double temp_if4; + double temp_if2; if ((temp_f>=this.value)) { - temp_if4 = temp_f; + temp_if2 = temp_f; } else { - temp_if4 = this.value; + temp_if2 = this.value; } - this.value = temp_if4; - } - public Highest(double highest) { - this.highest = highest; + this.value = temp_if2; } @PUT public void reset(@FormParam("v") double v) { diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Temp_f.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Temp_f.java index 6cd8101..a23f614 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Temp_f.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PULL-first/Temp_f.java @@ -16,9 +16,6 @@ public double getValue() { return value; } - public Temp_f(double temp_f) { - this.temp_f = temp_f; - } @PUT public void observe(@FormParam("x") double x) throws JsonProcessingException { Form form = new Form(); diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Highest.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Highest.java index 89e309a..7196436 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Highest.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Highest.java @@ -25,9 +25,6 @@ } this.value = temp_if3; } - public Highest(double highest) { - this.highest = highest; - } @PUT public void reset(@FormParam("v") double v) { this.value = v; diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_c.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_c.java index b875714..ee3d10a 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_c.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_c.java @@ -19,7 +19,4 @@ public void updateFromTemp_f(@FormParam("temp_f") double temp_f) { this.value = ((temp_f-32)/1.8); } - public Temp_c(double temp_c) { - this.temp_c = temp_c; - } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_f.java b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_f.java index e9c4b93..a589b35 100644 --- a/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_f.java +++ b/AlgebraicDataflowArchitectureModel/prototypes/JAX-RS/WeatherObservationSystem/PUSH-first/Temp_f.java @@ -16,9 +16,6 @@ public double getValue() { return value; } - public Temp_f(double temp_f) { - this.temp_f = temp_f; - } @PUT public void observe(@FormParam("x") double x) throws JsonProcessingException { Form form = new Form(); diff --git a/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDataFlowGraph.java b/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDataFlowGraph.java index 68526ff..2ae5b8f 100644 --- a/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDataFlowGraph.java +++ b/AlgebraicDataflowArchitectureModel/src/generators/CodeGeneratorFromDataFlowGraph.java @@ -467,15 +467,16 @@ // leaf resource. FieldDeclaration stateField = langSpec.newFieldDeclaration(resStateType, fieldOfResourceState, langSpec.getFieldInitializer(resStateType, resourceNode.getResourceHierarchy().getInitialValue())); component.addField(stateField); - Map nameToParam = constructorParams.get(resourceNode.getResourceHierarchy()); - if (nameToParam == null) { - nameToParam = new HashMap<>(); - constructorParams.put(resourceNode.getResourceHierarchy(), nameToParam); - } - String varName = langSpec.toVariableName(resourceName); - if (nameToParam.get(varName) == null) { - nameToParam.put(varName, langSpec.newVariableDeclaration(resStateType, varName)); - } + // Add a parameter to initialize the state field to the constructor. +// Map nameToParam = constructorParams.get(resourceNode.getResourceHierarchy()); +// if (nameToParam == null) { +// nameToParam = new HashMap<>(); +// constructorParams.put(resourceNode.getResourceHierarchy(), nameToParam); +// } +// String varName = fieldOfResourceState; +// if (nameToParam.get(varName) == null) { +// nameToParam.put(varName, langSpec.newVariableDeclaration(resStateType, varName)); +// } } else { ResourceHierarchy child = children.iterator().next(); if (children.size() == 1 && child.getNumParameters() > 0) { diff --git a/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java index 8b087e9..9ff7cfb 100644 --- a/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java +++ b/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java @@ -185,15 +185,16 @@ // leaf resource. Type fieldType = getImplStateType(res); component.addField(new FieldDeclaration(fieldType, "value", getInitializer(res))); - Map nameToParam = constructorParams.get(res); - if (nameToParam == null) { - nameToParam = new HashMap<>(); - constructorParams.put(resourceNode.getResourceHierarchy(), nameToParam); - } - String varName = toVariableName(resourceName); - if (nameToParam.get(varName) == null) { - nameToParam.put(varName, new VariableDeclaration(fieldType, varName)); - } + // Add a parameter to initialize the state field to the constructor. +// Map nameToParam = constructorParams.get(res); +// if (nameToParam == null) { +// nameToParam = new HashMap<>(); +// constructorParams.put(resourceNode.getResourceHierarchy(), nameToParam); +// } +// String varName = "value"; +// if (nameToParam.get(varName) == null) { +// nameToParam.put(varName, new VariableDeclaration(fieldType, varName)); +// } } else { ResourceHierarchy child = children.iterator().next(); if (children.size() == 1 && child.getNumParameters() > 0) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/JAXRSCodeGeneratorTest.java b/AlgebraicDataflowArchitectureModel/src/tests/JAXRSCodeGeneratorTest.java index 09e0328..9df8290 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/JAXRSCodeGeneratorTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/JAXRSCodeGeneratorTest.java @@ -149,7 +149,6 @@ Entry, // arg types Integer>>>>>>> // lines of code exprectedStructure = new HashMap<>(); - exprectedStructure.put("Hour", Map.entry(Set.of("@Path(\"/hour\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "int")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -159,11 +158,18 @@ Map.entry("updateFromMin", Map.entry(Set.of("@POST"), Map.entry("void", Map.entry(List.of("int"), - 1)))), - Map.entry("Hour", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))))))); + 1)))))))); + exprectedStructure.put("Min", Map.entry(Set.of("@Path(\"/min\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "int"), + Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("int", + Map.entry(List.of(), + 1)))), + Map.entry("tick", Map.entry(Set.of("@POST"), + Map.entry("void", + Map.entry(List.of(), + 3)))))))); exprectedStructure.put("Min_ang", Map.entry(Set.of("@Path(\"/min_ang\")","@Component"), Map.entry(Map.ofEntries(Map.entry("client", "Client")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -176,41 +182,13 @@ Map.entry("double", Map.entry(List.of(), 2)))))))); - exprectedStructure.put("Min", Map.entry(Set.of("@Path(\"/min\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "int"), - Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("int", - Map.entry(List.of(), - 1)))), - Map.entry("Min", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))), - Map.entry("tick", Map.entry(Set.of("@POST"), - Map.entry("void", - Map.entry(List.of(), - 3)))))))); + checkStructure(generatedCode, exprectedStructure); // generateCheckCode(generatedCode); // check PUSH-first generatedCode = generateCode("models/Clock.model", PushPullValue.PUSH); exprectedStructure.clear(); - exprectedStructure.put("Min_ang", Map.entry(Set.of("@Path(\"/min_ang\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "double")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("double", - Map.entry(List.of(), - 1)))), - Map.entry("updateFromMin", Map.entry(Set.of("@PUT"), - Map.entry("void", - Map.entry(List.of("int"), - 1)))), - Map.entry("Min_ang", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))))))); exprectedStructure.put("Hour_ang", Map.entry(Set.of("@Path(\"/hour_ang\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "double")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -220,26 +198,7 @@ Map.entry("updateFromHour", Map.entry(Set.of("@PUT"), Map.entry("void", Map.entry(List.of("int"), - 1)))), - Map.entry("Hour_ang", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))))))); - exprectedStructure.put("Min", Map.entry(Set.of("@Path(\"/min\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "int"), - Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("int", - Map.entry(List.of(), - 1)))), - Map.entry("Min", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))), - Map.entry("tick", Map.entry(Set.of("@POST"), - Map.entry("void", - Map.entry(List.of(), - 5)))))))); + 1)))))))); exprectedStructure.put("Hour", Map.entry(Set.of("@Path(\"/hour\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "int"), Map.entry("client", "Client")), @@ -250,11 +209,28 @@ Map.entry("updateFromMin", Map.entry(Set.of("@POST"), Map.entry("void", Map.entry(List.of("int"), - 3)))), - Map.entry("Hour", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))))))); + 3)))))))); + exprectedStructure.put("Min", Map.entry(Set.of("@Path(\"/min\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "int"), + Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("int", + Map.entry(List.of(), + 1)))), + Map.entry("tick", Map.entry(Set.of("@POST"), + Map.entry("void", + Map.entry(List.of(), + 5)))))))); + exprectedStructure.put("Min_ang", Map.entry(Set.of("@Path(\"/min_ang\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "double")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("double", + Map.entry(List.of(), + 1)))), + Map.entry("updateFromMin", Map.entry(Set.of("@PUT"), + Map.entry("void", + Map.entry(List.of("int"), + 1)))))))); checkStructure(generatedCode, exprectedStructure); // generateCheckCode(generatedCode); @@ -950,6 +926,23 @@ Map.entry("int", Map.entry(List.of(), 2)))))))); + exprectedStructure.put("Total", Map.entry(Set.of("@Path(\"/total\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("int", + Map.entry(List.of(), + 2)))))))); + exprectedStructure.put("Payment", Map.entry(Set.of("@Path(\"/payment\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "int"), + Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("int", + Map.entry(List.of(), + 1)))), + Map.entry("purchase", Map.entry(Set.of("@PUT"), + Map.entry("void", + Map.entry(List.of("int"), + 3)))))))); exprectedStructure.put("History", Map.entry(Set.of("@Path(\"/history\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "List")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -959,32 +952,7 @@ Map.entry("updateFromPayment", Map.entry(Set.of("@POST"), Map.entry("void", Map.entry(List.of("int"), - 1)))), - Map.entry("History", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("List"), - 1)))))))); - exprectedStructure.put("Payment", Map.entry(Set.of("@Path(\"/payment\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "int"), - Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("int", - Map.entry(List.of(), - 1)))), - Map.entry("Payment", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))), - Map.entry("purchase", Map.entry(Set.of("@PUT"), - Map.entry("void", - Map.entry(List.of("int"), - 3)))))))); - exprectedStructure.put("Total", Map.entry(Set.of("@Path(\"/total\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("int", - Map.entry(List.of(), - 2)))))))); + 1)))))))); checkStructure(generatedCode, exprectedStructure); // generateCheckCode(generatedCode); @@ -992,6 +960,17 @@ // check PUSH-first generatedCode = generateCode("models/POS.model", PushPullValue.PUSH); exprectedStructure.clear(); + exprectedStructure.put("Payment", Map.entry(Set.of("@Path(\"/payment\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "int"), + Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("int", + Map.entry(List.of(), + 1)))), + Map.entry("purchase", Map.entry(Set.of("@PUT"), + Map.entry("void", + Map.entry(List.of("int"), + 5)))))))); exprectedStructure.put("Total", Map.entry(Set.of("@Path(\"/total\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "int")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -1001,11 +980,7 @@ Map.entry("updateFromHistory", Map.entry(Set.of("@PUT"), Map.entry("void", Map.entry(List.of("List"), - 1)))), - Map.entry("Total", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))))))); + 1)))))))); exprectedStructure.put("History", Map.entry(Set.of("@Path(\"/history\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "List"), Map.entry("client", "Client")), @@ -1016,11 +991,7 @@ Map.entry("updateFromPayment", Map.entry(Set.of("@POST"), Map.entry("void", Map.entry(List.of("int"), - 3)))), - Map.entry("History", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("List"), - 1)))))))); + 3)))))))); exprectedStructure.put("Points", Map.entry(Set.of("@Path(\"/points\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "int")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -1030,26 +1001,7 @@ Map.entry("updateFromPayment", Map.entry(Set.of("@PUT"), Map.entry("void", Map.entry(List.of("int"), - 1)))), - Map.entry("Points", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))))))); - exprectedStructure.put("Payment", Map.entry(Set.of("@Path(\"/payment\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "int"), - Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("int", - Map.entry(List.of(), - 1)))), - Map.entry("Payment", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("int"), - 1)))), - Map.entry("purchase", Map.entry(Set.of("@PUT"), - Map.entry("void", - Map.entry(List.of("int"), - 5)))))))); + 1)))))))); checkStructure(generatedCode, exprectedStructure); // generateCheckCode(generatedCode); @@ -1148,11 +1100,7 @@ Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), Map.entry("Map", Map.entry(List.of(), - 8)))), - Map.entry("Counts", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("Map"), - 1)))))))); + 8)))))))); exprectedStructure.put("Account", Map.entry(Set.of(), Map.entry(Map.ofEntries(Map.entry("vote", "String")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of(), @@ -1181,22 +1129,22 @@ Map.entry("Account", Map.entry(List.of("String"), 1)))), - Map.entry("getAccountValue", Map.entry(Set.of("@Path(\"/{aid}\")","@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("Map", - Map.entry(List.of("String"), - 1)))), Map.entry("getVoteValue", Map.entry(Set.of("@Path(\"/{aid}/vote\")","@Produces(MediaType.APPLICATION_JSON)","@GET"), Map.entry("String", Map.entry(List.of("String"), 1)))), - Map.entry("signUp", Map.entry(Set.of("@POST"), - Map.entry("void", - Map.entry(List.of("String","String"), - 1)))), + Map.entry("getAccountValue", Map.entry(Set.of("@Path(\"/{aid}\")","@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("Map", + Map.entry(List.of("String"), + 1)))), Map.entry("cast", Map.entry(Set.of("@Path(\"/{aid}/vote\")","@PUT"), Map.entry("void", Map.entry(List.of("String","String"), - 1)))))))); + 1)))), + Map.entry("signUp", Map.entry(Set.of("@POST"), + Map.entry("void", + Map.entry(List.of("String","String"), + 1)))))))); checkStructure(generatedCode, exprectedStructure); // generateCheckCode(generatedCode); @@ -1222,6 +1170,12 @@ Entry, // arg types Integer>>>>>>> // lines of code exprectedStructure = new HashMap<>(); + exprectedStructure.put("Temp_c", Map.entry(Set.of("@Path(\"/temp_c\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("double", + Map.entry(List.of(), + 2)))))))); exprectedStructure.put("Highest", Map.entry(Set.of("@Path(\"/highest\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "double")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -1232,20 +1186,10 @@ Map.entry("void", Map.entry(List.of("double"), 1)))), - Map.entry("Highest", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))), Map.entry("reset", Map.entry(Set.of("@PUT"), Map.entry("void", Map.entry(List.of("double"), 1)))))))); - exprectedStructure.put("Temp_c", Map.entry(Set.of("@Path(\"/temp_c\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("double", - Map.entry(List.of(), - 2)))))))); exprectedStructure.put("Temp_f", Map.entry(Set.of("@Path(\"/temp_f\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "double"), Map.entry("client", "Client")), @@ -1253,10 +1197,6 @@ Map.entry("double", Map.entry(List.of(), 1)))), - Map.entry("Temp_f", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))), Map.entry("observe", Map.entry(Set.of("@PUT"), Map.entry("void", Map.entry(List.of("double"), @@ -1268,35 +1208,6 @@ // check PUSH-first generatedCode = generateCode("models/WeatherObservationSystem.model", PushPullValue.PUSH); exprectedStructure.clear(); - exprectedStructure.put("Temp_c", Map.entry(Set.of("@Path(\"/temp_c\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "double")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("double", - Map.entry(List.of(), - 1)))), - Map.entry("updateFromTemp_f", Map.entry(Set.of("@PUT"), - Map.entry("void", - Map.entry(List.of("double"), - 1)))), - Map.entry("Temp_c", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))))))); - exprectedStructure.put("Temp_f", Map.entry(Set.of("@Path(\"/temp_f\")","@Component"), - Map.entry(Map.ofEntries(Map.entry("value", "double"), - Map.entry("client", "Client")), - Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), - Map.entry("double", - Map.entry(List.of(), - 1)))), - Map.entry("Temp_f", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))), - Map.entry("observe", Map.entry(Set.of("@PUT"), - Map.entry("void", - Map.entry(List.of("double"), - 5)))))))); exprectedStructure.put("Highest", Map.entry(Set.of("@Path(\"/highest\")","@Component"), Map.entry(Map.ofEntries(Map.entry("value", "double")), Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), @@ -1307,14 +1218,31 @@ Map.entry("void", Map.entry(List.of("double"), 1)))), - Map.entry("Highest", Map.entry(Set.of(), - Map.entry("void", - Map.entry(List.of("double"), - 1)))), Map.entry("reset", Map.entry(Set.of("@PUT"), Map.entry("void", Map.entry(List.of("double"), 1)))))))); + exprectedStructure.put("Temp_f", Map.entry(Set.of("@Path(\"/temp_f\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "double"), + Map.entry("client", "Client")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("double", + Map.entry(List.of(), + 1)))), + Map.entry("observe", Map.entry(Set.of("@PUT"), + Map.entry("void", + Map.entry(List.of("double"), + 5)))))))); + exprectedStructure.put("Temp_c", Map.entry(Set.of("@Path(\"/temp_c\")","@Component"), + Map.entry(Map.ofEntries(Map.entry("value", "double")), + Map.ofEntries(Map.entry("getValue", Map.entry(Set.of("@Produces(MediaType.APPLICATION_JSON)","@GET"), + Map.entry("double", + Map.entry(List.of(), + 1)))), + Map.entry("updateFromTemp_f", Map.entry(Set.of("@PUT"), + Map.entry("void", + Map.entry(List.of("double"), + 1)))))))); checkStructure(generatedCode, exprectedStructure); // generateCheckCode(generatedCode); @@ -1348,8 +1276,8 @@ } TypeInference.infer(model); DataTransferMethodAnalyzer.decideToStoreResourceStates(graph); -// ArrayList codetree = JerseyMethodBodyGenerator.doGenerate(graph, model, JerseyCodeGenerator.doGenerate(graph, model)); - ArrayList codetree = new CodeGeneratorFromDataFlowGraph().generateCode(model, graph, new JerseySpecific(), new JavaSpecific()); + ArrayList codetree = JerseyMethodBodyGenerator.doGenerate(graph, model, JerseyCodeGenerator.doGenerate(graph, model)); +// ArrayList codetree = new CodeGeneratorFromDataFlowGraph().generateCode(model, graph, new JerseySpecific(), new JavaSpecific()); return codetree; } diff --git a/AlgebraicDataflowArchitectureModel/src/tests/JavaCodeGeneratorTest.java b/AlgebraicDataflowArchitectureModel/src/tests/JavaCodeGeneratorTest.java index a85f514..7c4f6aa 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/JavaCodeGeneratorTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/JavaCodeGeneratorTest.java @@ -1803,8 +1803,8 @@ } TypeInference.infer(model); DataTransferMethodAnalyzer.decideToStoreResourceStates(graph); -// ArrayList codetree = JavaMethodBodyGenerator.doGenerate(graph, model, JavaCodeGenerator.doGenerate(graph, model)); - ArrayList codetree = new CodeGeneratorFromDataFlowGraph().generateCode(model, graph, new StandaloneSpecific(), new JavaSpecific()); + ArrayList codetree = JavaMethodBodyGenerator.doGenerate(graph, model, JavaCodeGenerator.doGenerate(graph, model)); +// ArrayList codetree = new CodeGeneratorFromDataFlowGraph().generateCode(model, graph, new StandaloneSpecific(), new JavaSpecific()); return codetree; }