From b05e3c9026c520c7d4489638b484ba1ae8a746b6 Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Thu, 13 Oct 2022 17:55:19 +0200 Subject: [PATCH] fixed bugs within the generation of: main, subscribers, Nodes, CallbackMapper --- .../de/tudresden/inf/st/pnml/gen/Main.java | 4 +-- .../gen/builders/PackageStructureBuilder.java | 21 ++++++----- .../pnml/gen/generators/JavaClassGenUtil.java | 7 ++-- .../mustache/JavaCallbackMapper.mustache | 36 +++++++++---------- src/main/resources/mustache/JavaMain.mustache | 6 ++-- 5 files changed, 39 insertions(+), 35 deletions(-) diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java index 9b2b613..a9b2aaa 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/Main.java @@ -38,8 +38,8 @@ public class Main { // ObjectMapper gcObjectMapper = new ObjectMapper(); // GeneratorConfig config = gcObjectMapper.readValue(Files.readString(Paths.get(args[1])), new TypeReference<List<NetInfo>>(){}); - GeneratorConfig gc = new GeneratorConfig("sample", "sample-pkg","/home/sebastian/git/dineros/pnml-relast-tools/pnml-relast-pkg-gen/src/test/java/Token.java", - "sample","0.1","/home/sebastian/git/dineros/pnml-relast-tools/pnml-relast-pkg-gen/src/test/resources/EngineConfig.json","localhost", + GeneratorConfig gc = new GeneratorConfig("sample", "sample-pkg","/home/sebastian/jastadd-workspaces/dineros-linked-ws/pnml-relast-tools/pnml-relast-pkg-gen/src/test/java/Token.java", + "sample","0.1","/home/sebastian/jastadd-workspaces/dineros-linked-ws/pnml-relast-tools/pnml-relast-pkg-gen/src/test/resources/EngineConfig.json","localhost", "http://localhost:11311","localhost","/home/sebastian/Desktop"); DinerosPackage dp = new DinerosPackage(); diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java index f531a68..c32ab9b 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/builders/PackageStructureBuilder.java @@ -16,11 +16,9 @@ public class PackageStructureBuilder { private static final String FILE_PATH = "../pnml-relast-pkg-gen/src/main/resources/static/"; - public static boolean build(String targetPath, DinerosPackage dinerosPackage, List<NetInfo> petriNetFilePaths, String engineVersion + public static boolean build(String packagePath, DinerosPackage dinerosPackage, List<NetInfo> petriNetFilePaths, String engineVersion , String rosHost, String rosMasterUri, String mqttHost) { - String packagePath = targetPath; // + "/" + dinerosPackage.getRootName(); - List<PetriNet> nets = new ArrayList<>(); for (NetInfo n : petriNetFilePaths) { @@ -66,11 +64,15 @@ public class PackageStructureBuilder { for (PackageFile pf : packageDirectory.getFileList()){ if(pf.isTemplateFile()) { - System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName()); if(pf.isJavaFile()){ + System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java"); + + System.out.println("Content: \n" + pf.asTemplateFile().getFileContent()); + writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java", pf.asTemplateFile().getFileContent()); }else { + System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName()); writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName(), pf.asTemplateFile().getFileContent()); } } @@ -383,20 +385,18 @@ public class PackageStructureBuilder { } for (PackageFile pf : dinerosPackage.allPackageFiles()) { - if (!visitedPackageFileIDs.contains(pf.getFileID())) { - visitedPackageFileIDs.add(pf.getFileID()); if (pf.isSubscriberFile()) { - for (Transition t : nets.get(i).allTransitions()) { String transitionType = t.asInputSignalTransition().getStaticTransitionInformation().getType(); if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_LIMITED_IN) || transitionType.equals(PnmlConstants.TRANSITION_TYPE_TOPIC_UNLIMITED_IN)) { - pf.setName("Node" + i + "Subscriber" + subscriberCountMap.get(nets.get(i).getId())); + pf.setName("Node" + i + "Subscriber" + (subscriberCountMap.get(nets.get(i).getId()) -1 )); pf.asSubscriberFile().generate(); subscriberCountMap.put(nets.get(i).getId(), subscriberCountMap.get(nets.get(i).getId()) + 1); + visitedPackageFileIDs.add(pf.getFileID()); } } } @@ -409,8 +409,9 @@ public class PackageStructureBuilder { if (transitionType.equals(PnmlConstants.TRANSITION_TYPE_SERVICE_REQUEST_OUT)) { pf.setName("Node" + i + "Server" + serviceCountMap.get(nets.get(i).getId())); - pf.asSubscriberFile().generate(); + pf.asServerFile().generate(); serviceCountMap.put(nets.get(i).getId(), serviceCountMap.get(nets.get(i).getId()) + 1); + visitedPackageFileIDs.add(pf.getFileID()); } } } @@ -418,10 +419,12 @@ public class PackageStructureBuilder { if (pf.getName().equals("build.gradle")) { String mainClassName = "de.tudresden.inf.st." + dinerosPackage.getNamespace() + ".Main.java"; pf.asGradleFile().generateBuildGradle(mainClassName, dinerosPackage.getName(), dinerosPackage.getVersion(), engineVersion); + visitedPackageFileIDs.add(pf.getFileID()); } if (pf.getName().equals("settings.gradle")) { pf.asGradleFile().generateSettingsGradle(dinerosPackage.getRootName()); + visitedPackageFileIDs.add(pf.getFileID()); } } } diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java b/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java index 05ea871..a98a57f 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/generators/JavaClassGenUtil.java @@ -26,7 +26,8 @@ public class JavaClassGenUtil extends AbstractGenUtil{ for(int i = 0; i < petriNetList.size(); i++){ - NodeInfo nodeInfo = new NodeInfo(petriNetFiles.get(i), "node" + i, + String[] splitNetPath = petriNetFiles.get(i).split("/"); + NodeInfo nodeInfo = new NodeInfo(splitNetPath[splitNetPath.length - 1], "node" + i, String.valueOf(i), "Node" + i); nodeInfos.add(nodeInfo); @@ -85,11 +86,11 @@ public class JavaClassGenUtil extends AbstractGenUtil{ Map<String, Object> context = new HashMap<>(); MapperContext mapperContext = new MapperContext(packageNamespace); - context.put("serverContext", mapperContext); + context.put("mapperContext", mapperContext); List<MapperInfo> mapperInfos = new ArrayList<>(); - for(int i = 1; i < petriNets.size(); i++){ + for(int i = 0; i < petriNets.size(); i++){ MapperInfo mapperInfo = new MapperInfo("Node" + i); mapperInfos.add(mapperInfo); } diff --git a/src/main/resources/mustache/JavaCallbackMapper.mustache b/src/main/resources/mustache/JavaCallbackMapper.mustache index 04ca4cd..6d399f9 100644 --- a/src/main/resources/mustache/JavaCallbackMapper.mustache +++ b/src/main/resources/mustache/JavaCallbackMapper.mustache @@ -1,27 +1,27 @@ {{#mapperContext}} -package de.tudresden.inf.st.{{{packageNamespace}}}.callback; + package de.tudresden.inf.st.{{{packageNamespace}}}.callback; -import de.tudresden.inf.st.pnml.engine.execution.DefaultTransitionCallback; -import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; -import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; -import de.tudresden.inf.st.pnml.jastadd.model.Transition; + import de.tudresden.inf.st.pnml.engine.execution.DefaultTransitionCallback; + import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; + import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; + import de.tudresden.inf.st.pnml.jastadd.model.Transition; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; + import java.util.ArrayList; + import java.util.HashMap; + import java.util.List; + import java.util.Map; -public class CallbackMapper { -{{#mapperInfos}} + public class CallbackMapper { + {{#mapperInfos}} - public static final Map<String, List<AbstractNetCallback>> initCallbacksFor{{{nodeName}}}(PetriNet petriNet){ + public static final Map<String, List<AbstractNetCallback>> initCallbacksFor{{{nodeName}}}(PetriNet petriNet){ - Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>(); + Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>(); - // TODO: implementation by user + // TODO: implementation by user - return callbackMap; - } -{{/mapperInfos}} -} + return callbackMap; + } + {{/mapperInfos}} + } {{/mapperContext}} \ No newline at end of file diff --git a/src/main/resources/mustache/JavaMain.mustache b/src/main/resources/mustache/JavaMain.mustache index 5905e30..63a5bf4 100644 --- a/src/main/resources/mustache/JavaMain.mustache +++ b/src/main/resources/mustache/JavaMain.mustache @@ -1,4 +1,4 @@ -{{#mainContext}} +{{#mainExecutionContext}} package de.tudresden.inf.st.{{{packageNamespace}}}; import com.fasterxml.jackson.databind.ObjectMapper; @@ -48,7 +48,7 @@ public class Main { // actual petri net paths are generated List<String> petriNetPaths = new ArrayList<>(); {{#nodeInfos}} - petriNetPaths.add("src/main/resources/nets/{{{netName}}}.pnml"); + petriNetPaths.add("src/main/resources/nets/{{{netName}}}"); {{/nodeInfos}} List<PetriNet> petriNets = new ArrayList<>(); @@ -108,4 +108,4 @@ public class Main { start(); } }; {{/nodeInfos}} -{{/mainContext}} \ No newline at end of file +{{/mainExecutionContext}} \ No newline at end of file -- GitLab