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 9b2b613a03e446c006db77a892f2ff9789959433..a9b2aaaa79ba460457015ac3147373b734a36544 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 f531a68a68b1fed0fd8b93d5d69eaed4547eecf9..c32ab9b1b85d6a9e1bc2ff3282f0c57237fc56e9 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 05ea871426c81e5fd11b8690605b77ede6cc7f1a..a98a57f214f066d4f87aa1b025d5735805d29a4c 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 04ca4cdd1c6ef9ef47948ef9bbabf0f6f6cd058c..6d399f93420591a2bd7b30a61dcc93b6245b68bf 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 5905e30dbdb78f103670bcc390b710ecaf173b27..63a5bf41398d2c0ad9ac339792f42b2d9ef15dda 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