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 7887153754029648b7aca7a75c1e9a4a2623f0fc..5e656bf78745dafcdf23de92ad7073922fdc0ba9 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 @@ -1,23 +1,22 @@ package de.tudresden.inf.st.pnml.gen; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import de.tudresden.inf.st.pnml.gen.builders.PackageStructureBuilder; +import de.tudresden.inf.st.pnml.gen.json.GeneratorConfig; import de.tudresden.inf.st.pnml.gen.json.NetInfo; import de.tudresden.inf.st.pnml.jastadd.model.DinerosPackage; -import de.tudresden.inf.st.pnml.jastadd.model.GradleFile; -import de.tudresden.inf.st.pnml.jastadd.model.PackageDirectory; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.Arrays; import java.util.List; public class Main { - public static void main(java.lang.String[] args) throws IOException { + static final String ENGINE_VERSION = "0.1"; - // TODO: Configuration + public static void main(java.lang.String[] args) throws IOException { // PackageStructureBuilder.build("/home/sebastian/Desktop", "test", "test", null); // GradleFile gf = new GradleFile(); @@ -36,27 +35,26 @@ public class Main { String version = args[4]; */ - String packageName = "sample"; - String rootName = "sample-pkg"; - String tokenClassPath = "/home/sebastian/Desktop/Token.java"; - String namespace = "sample"; - String version = "0.1"; - String engineVersion = "0.1"; - String configFile = "/home/sebastian/Desktop/EngineConfig.json"; + // 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/Desktop/Token.java", + "sample","0.1","/home/sebastian/Desktop/EngineConfig.json","localhost", + "http://localhost:11311","localhost","/home/sebastian/Desktop"); DinerosPackage dp = new DinerosPackage(); - dp.setName(packageName); - dp.setRootName(rootName); - dp.setNamespace(namespace); - dp.setTokenClass(Files.readString(Paths.get(tokenClassPath))); - dp.setVersion(version); - - String configString = Files.readString(Paths.get(configFile)); - ObjectMapper objectMapper = new ObjectMapper(); - List<NetInfo> petriNetFilePaths = objectMapper.readValue(configString, new TypeReference<List<NetInfo>>(){}); - - PackageStructureBuilder.build("/home/sebastian/Desktop", dp, petriNetFilePaths, engineVersion - , "localhost", "http://localhost:11311", "localhost"); + dp.setName(gc.getPackageName()); + dp.setRootName(gc.getRootName()); + dp.setNamespace(gc.getNamespace()); + dp.setTokenClass(Files.readString(Paths.get(gc.getTokenClassPath()))); + dp.setVersion(gc.getVersion()); + + String configString = Files.readString(Paths.get(gc.getConfigFile())); + ObjectMapper netObjectMapper = new ObjectMapper(); + List<NetInfo> petriNetFilePaths = Arrays.asList(netObjectMapper.readValue(configString, NetInfo[].class)); + + PackageStructureBuilder.build(gc.getTargetPath(), dp, petriNetFilePaths, ENGINE_VERSION + , gc.getRosHost(), gc.getRosMasterUri(), gc.getMqttHost()); } } 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 1b2d8d860cffa8edbc76b91324fd5d3116c01b55..db32ef467bd5020770e82eec4aefbe080181786c 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 @@ -24,13 +24,13 @@ public class PackageStructureBuilder { List<PetriNet> nets = new ArrayList<>(); for (NetInfo n : petriNetFilePaths) { - nets.add(PnmlParser.parsePnml(n.getNet()).get(0)); + nets.add(PnmlParser.parsePnml(n.net).get(0)); } List<String> stringNetPaths = new ArrayList<>(); for(NetInfo n : petriNetFilePaths){ - stringNetPaths.add(n.getNet()); + stringNetPaths.add(n.net); } try { @@ -332,7 +332,7 @@ public class PackageStructureBuilder { visitedPackageFileIDs.add(pf.getFileID()); pf.setName("PetriNet-" + i + ".pnml"); Path copied = Paths.get(packagePath + "/src/main/resources/nets/" + pf.getName()); - Path originalPath = Paths.get(netPaths.get(i).getNet()); + Path originalPath = Paths.get(netPaths.get(i).net); Files.copy(originalPath, copied, StandardCopyOption.REPLACE_EXISTING); System.out.println("Copy PNML:" + originalPath + " --> " + copied); } diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/json/GeneratorConfig.java b/src/main/java/de/tudresden/inf/st/pnml/gen/json/GeneratorConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..8d636601f3797df2b9ac4444e7836075b1389285 --- /dev/null +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/json/GeneratorConfig.java @@ -0,0 +1,108 @@ +package de.tudresden.inf.st.pnml.gen.json; + +public class GeneratorConfig { + + private String packageName; + private String rootName; + private String tokenClassPath; + private String namespace; + private String version; + private String configFile; + private String rosHost; + private String rosMasterUri; + private String mqttHost; + private String targetPath; + + public GeneratorConfig(String packageName, String rootName, String tokenClassPath, String namespace, String version, String configFile, String rosHost, String rosMasterUri, String mqttHost, String targetPath) { + this.packageName = packageName; + this.rootName = rootName; + this.tokenClassPath = tokenClassPath; + this.namespace = namespace; + this.version = version; + this.configFile = configFile; + this.rosHost = rosHost; + this.rosMasterUri = rosMasterUri; + this.mqttHost = mqttHost; + this.targetPath = targetPath; + } + + public String getPackageName() { + return packageName; + } + + public void setPackageName(String packageName) { + this.packageName = packageName; + } + + public String getRootName() { + return rootName; + } + + public void setRootName(String rootName) { + this.rootName = rootName; + } + + public String getTokenClassPath() { + return tokenClassPath; + } + + public void setTokenClassPath(String tokenClassPath) { + this.tokenClassPath = tokenClassPath; + } + + public String getNamespace() { + return namespace; + } + + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getConfigFile() { + return configFile; + } + + public void setConfigFile(String configFile) { + this.configFile = configFile; + } + + public String getRosHost() { + return rosHost; + } + + public void setRosHost(String rosHost) { + this.rosHost = rosHost; + } + + public String getRosMasterUri() { + return rosMasterUri; + } + + public void setRosMasterUri(String rosMasterUri) { + this.rosMasterUri = rosMasterUri; + } + + public String getMqttHost() { + return mqttHost; + } + + public void setMqttHost(String mqttHost) { + this.mqttHost = mqttHost; + } + + public String getTargetPath() { + return targetPath; + } + + public void setTargetPath(String targetPath) { + this.targetPath = targetPath; + } +} diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/json/NetInfo.java b/src/main/java/de/tudresden/inf/st/pnml/gen/json/NetInfo.java index 09c7ed660904ad0fc2a0bd711d2a7be64eee12e4..9d888cd8ad3877a7f459d2312b74afa95eaf47f4 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/gen/json/NetInfo.java +++ b/src/main/java/de/tudresden/inf/st/pnml/gen/json/NetInfo.java @@ -2,17 +2,5 @@ package de.tudresden.inf.st.pnml.gen.json; public class NetInfo { - private String net; - - public NetInfo(String net) { - this.net = net; - } - - public String getNet() { - return net; - } - - public void setNet(String net) { - this.net = net; - } + public String net; } diff --git a/src/test/java/Token.java b/src/test/java/Token.java new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/test/resources/EngineConfig.json b/src/test/resources/EngineConfig.json new file mode 100644 index 0000000000000000000000000000000000000000..dec50c2628996d2a3e55bb9695964d16cf1b4237 --- /dev/null +++ b/src/test/resources/EngineConfig.json @@ -0,0 +1,6 @@ +[{ + "net" : "/home/sebastian/Desktop/publisher-net.pnml" +}, +{ + "net" : "/home/sebastian/Desktop/subscriber-net.pnml" +}]