diff --git a/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java b/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java index 2d1c1c2..4f7d7ec 100644 --- a/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java +++ b/AlgebraicDataflowArchitectureModel/src/generators/JerseyCodeGenerator.java @@ -140,7 +140,7 @@ List> fields = new ArrayList<>(); Map> descendantGetters = new HashMap<>(); Map getterAccessors = new HashMap<>(); - Map inputAccessors = new HashMap<>(); + Map> inputAccessors = new HashMap<>(); Map> constructorParams = new HashMap<>(); Map priorMemberForInputChannel = new HashMap<>(); @@ -835,7 +835,12 @@ if (resourcePath.length() > 0) { inputAccessor.addAnnotation(new Annotation("Path", "\"" + resourcePath + "\"")); } - inputAccessors.put(resourceNode.getResourceHierarchy(), inputAccessor); + Map nameToMethod = inputAccessors.get(resourceNode.getResourceHierarchy()); + if (nameToMethod == null) { + nameToMethod = new HashMap<>(); + inputAccessors.put(resourceNode.getResourceHierarchy(), nameToMethod); + } + nameToMethod.put(messageSymbol, inputAccessor); } } else if (message instanceof Variable) { // In each resource. @@ -899,7 +904,12 @@ if (resourcePath.length() > 0) { inputAccessor.addAnnotation(new Annotation("Path", "\"" + resourcePath + "\"")); } - inputAccessors.put(resourceNode.getResourceHierarchy(), inputAccessor); + Map nameToMethod = inputAccessors.get(resourceNode.getResourceHierarchy()); + if (nameToMethod == null) { + nameToMethod = new HashMap<>(); + inputAccessors.put(resourceNode.getResourceHierarchy(), nameToMethod); + } + nameToMethod.put(messageSymbol, inputAccessor); } } } @@ -970,7 +980,9 @@ // Add input accessors. for (ResourceHierarchy res: inputAccessors.keySet()) { if (rootRes.isAncestorOf(res)) { - rootComponent.addMethod(inputAccessors.get(res)); + for (MethodDeclaration inputAccessor: inputAccessors.get(res).values()) { + rootComponent.addMethod(inputAccessor); + } } } }