diff --git a/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyMethodBodyGenerator.java b/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyMethodBodyGenerator.java index 9b976f4..e0f426e 100644 --- a/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyMethodBodyGenerator.java +++ b/AlgebraicDataflowArchitectureModel/src/algorithms/JerseyMethodBodyGenerator.java @@ -45,19 +45,10 @@ Symbol sum = model.getSymbol("sum"); Symbol.Memento sumMem = null; if (sum != null) { - // for the list of strings. sumMem = sum.createMemento(); - sum.setImplName("stream().mapToInt(x->Integer.parseInt(x)).sum"); + sum.setImplName("stream().mapToInt(x->x).sum"); sum.setImplOperatorType(Symbol.Type.METHOD); } - Symbol cons = model.getSymbol("cons"); - Symbol.Memento consMem = null; - if (cons != null) { - // for the list of strings. - consMem = cons.createMemento(); - cons.setImplName("($x,$y)->$x.add(Integer.toString($y))"); - cons.setImplOperatorType(Symbol.Type.LAMBDA_WITH_SIDE_EFFECT); - } // Create a map from type names (lower case) to their types. Map typeMap = new HashMap<>(); @@ -188,16 +179,18 @@ if (floor != null) floor.setMemento(floorMem); if (sum != null) sum.setMemento(sumMem); - if (cons != null) cons.setMemento(consMem); return codes; } private static String getHttpMethodParamsStatement(String callerResourceName, Type paramType, String paramName) { if (paramType.getTypeName().equals("List")) { - String statements = "MultivaluedHashMap list = new MultivaluedHashMap();\n"; - statements += "list.addAll(\"" + paramName + "\", "+ paramName + ");\n"; - statements += "Entity
entity = Entity.entity(new Form(list), MediaType.APPLICATION_FORM_URLENCODED);"; + String statements = "Form form = new Form();\n"; + statements += "for (Integer i: " + paramName + ") {\n"; + statements += "\tform.param(\"" + paramName + "\", i.toString());\n"; + statements += "}\n"; + statements += "Entity entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED);"; return statements; +// return "Entity entity = Entity.entity(" + paramName + ".toString(), MediaType.APPLICATION_JSON);"; } return "Entity entity = Entity.entity(new Form().param(\"" + paramName + "\", " + CodeUtil.getToStringExp(paramType.getImplementationTypeName(), paramName) + "), MediaType.APPLICATION_FORM_URLENCODED_TYPE);"; } diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/JerseyPrototypeGenerateAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/JerseyPrototypeGenerateAction.java index 2ac5444..1bf0de2 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/JerseyPrototypeGenerateAction.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/JerseyPrototypeGenerateAction.java @@ -50,16 +50,6 @@ } else { JerseyCodeGenerator.resetMainTypeName(); // use the default main type's name. } - - Type list = model.getType("List"); - Type.Memento listMem = null; - if (list != null) { - // Only a list of strings can be passed as a form parameter of PUT/POST method. - listMem = list.createMemento(); - list.setImplementationTypeName("ArrayList"); - list.setInterfaceTypeName("List"); - } - editor.setCodes(JerseyMethodBodyGenerator.doGenerate(graph, model, JerseyCodeGenerator.doGenerate(graph, model))); for (CompilationUnit file : editor.getCodes()) { System.out.println(file); @@ -75,8 +65,6 @@ save(fc.getSelectedFile(), cu); } } - - if (list != null) list.setMemento(listMem); } } diff --git a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java index 1089b4d..fff1ccc 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java @@ -28,7 +28,7 @@ public static final Symbol cons = new Symbol("cons", 2, Symbol.Type.PREFIX, "add", Symbol.Type.METHOD_WITH_SIDE_EFFECT, new int[] {1, 0}); public static final Symbol head = new Symbol("head", 1, Symbol.Type.PREFIX, "get(0)", Symbol.Type.METHOD); public static final Symbol body = new Symbol("tail", 1, Symbol.Type.PREFIX, "($x)->$x.subString(1, $x.size())", Symbol.Type.LAMBDA); - public static final Symbol cond = new Symbol("if", 3, Symbol.Type.PREFIX, "($x,$y,$z)->$x?$y:$z", Symbol.Type.LAMBDA); + public static final Symbol cond = new Symbol("if", 3, Symbol.Type.PREFIX, "($x,$y,$z)->$x ? $y : $z", Symbol.Type.LAMBDA); public static final Symbol eq = new Symbol("eq", 2, Symbol.Type.PREFIX, "==", Symbol.Type.INFIX); public static final Symbol gt = new Symbol("gt", 2, Symbol.Type.PREFIX, ">", Symbol.Type.INFIX); public static final Symbol lt = new Symbol("lt", 2, Symbol.Type.PREFIX, "<", Symbol.Type.INFIX);