Skip to content
Snippets Groups Projects
Commit 30047152 authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

fixed structural generation, fixed bug in node generation

parent 5919d71e
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,7 @@ abstract PackageElement;
abstract PackageFile:PackageElement ::= <Name:String> <FileID:String> ;
StaticFile:PackageFile ;
PnmlFile:StaticFile;
PnmlFile:StaticFile ::= <SourceName:String> <SourcePath:String>;
abstract TemplateFile:PackageFile ::= <FileContent:String> ;
GradleFile:TemplateFile ;
......
......@@ -14,6 +14,9 @@ aspect PackageNav {
syn boolean PackageFile.isPnmlFile() = false;
eq PnmlFile.isPnmlFile() = true;
syn boolean PackageFile.isJavaFile() = false;
eq JavaFile.isJavaFile() = true;
syn boolean PackageFile.isTemplateFile() = false;
eq TemplateFile.isTemplateFile() = true;
......@@ -26,6 +29,8 @@ aspect PackageNav {
syn NodeFile PackageFile.asNodeFile() = null;
eq NodeFile.asNodeFile() = this;
syn PnmlFile PackageFile.asPnmlFile() = null;
eq PnmlFile.asPnmlFile() = this;
syn boolean PackageFile.isSubscriberFile() = false;
eq SubscriberFile.isSubscriberFile() = true;
......
......@@ -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/Desktop/Token.java",
"sample","0.1","/home/sebastian/Desktop/EngineConfig.json","localhost",
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",
"http://localhost:11311","localhost","/home/sebastian/Desktop");
DinerosPackage dp = new DinerosPackage();
......
......@@ -19,7 +19,7 @@ public class PackageStructureBuilder {
public static boolean build(String targetPath, DinerosPackage dinerosPackage, List<NetInfo> petriNetFilePaths, String engineVersion
, String rosHost, String rosMasterUri, String mqttHost) {
String packagePath = targetPath + "/" + dinerosPackage.getRootName();
String packagePath = targetPath; // + "/" + dinerosPackage.getRootName();
List<PetriNet> nets = new ArrayList<>();
......@@ -37,19 +37,21 @@ public class PackageStructureBuilder {
Files.createDirectories(Paths.get(packagePath));
buildDinerosPackageStructure(dinerosPackage.getRootName(), dinerosPackage.getNamespace(), dinerosPackage);
buildDinerosGeneratedFilesStructure(dinerosPackage, nets);
buildDinerosGeneratedFilesStructure(dinerosPackage, nets, petriNetFilePaths);
buildStaticFilesIntoDinerosPackage(dinerosPackage, engineVersion);
includeDirectoriesRecursive(dinerosPackage.getDir(0), packagePath);
includeTemplateFiles(dinerosPackage, nets, engineVersion, stringNetPaths, rosHost, rosMasterUri, mqttHost);
includeFilesInPackageRecursive(dinerosPackage.getDir(0), packagePath);
includePnmlFiles(dinerosPackage, petriNetFilePaths, packagePath);
includeTokenClass(dinerosPackage, packagePath);
// includePnmlFiles(dinerosPackage, petriNetFilePaths, packagePath);
includeTokenClass(dinerosPackage, packagePath); // TODO fix
insertStringsAsFilesRecursive(dinerosPackage.getDir(0), packagePath);
} catch (IOException e) {
System.out.println(e.getMessage() + " caused by: " + e.getCause());
System.err.println(e.getLocalizedMessage() + " caused by: " + e.getCause());
e.printStackTrace();
return false;
}
......@@ -64,7 +66,13 @@ public class PackageStructureBuilder {
for (PackageFile pf : packageDirectory.getFileList()){
if(pf.isTemplateFile()) {
writeToFile(packagePath + "/" + pf.getName(), pf.asTemplateFile().getFileContent());
System.out.println("Writing file " + pf.getName() + " to: " + packagePath + "/" + packageDirectory.getName() + "/" + pf.getName());
if(pf.isJavaFile()){
writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName() + ".java", pf.asTemplateFile().getFileContent());
}else {
writeToFile(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName(), pf.asTemplateFile().getFileContent());
}
}
}
......@@ -79,7 +87,8 @@ public class PackageStructureBuilder {
writer.write(content);
}
catch (IOException ex) {
System.out.println("ERROR: " + ex.getMessage());
System.err.println("ERROR: " + ex.getMessage());
ex.printStackTrace();
}
}
......@@ -87,7 +96,7 @@ public class PackageStructureBuilder {
// TREE GEN /////////////////////////
/////////////////////////////////////
private static void buildDinerosGeneratedFilesStructure(DinerosPackage dinerosPackage, List<PetriNet> nets) {
private static void buildDinerosGeneratedFilesStructure(DinerosPackage dinerosPackage, List<PetriNet> nets, List<NetInfo> petriNetFilePaths) {
GradleFile buildGradle = new GradleFile();
buildGradle.setName("build.gradle");
......@@ -111,7 +120,7 @@ public class PackageStructureBuilder {
for (int i = 0; i < nets.size(); i++) {
NodeFile nodeFile = new NodeFile();
nodeFile.setName("Node" + i);
nodeFile.setFileID(UUID.randomUUID().toString());
nodeFile.setFileID("Node-" + String.valueOf(i));
pd.addFile(nodeFile);
}
}
......@@ -147,14 +156,14 @@ public class PackageStructureBuilder {
if (pd.getName().equals("callback")) {
MapperFile callbackMapper = new MapperFile();
callbackMapper.setName("CallbackMapper.java");
callbackMapper.setName("CallbackMapper");
callbackMapper.setFileID(UUID.randomUUID().toString());
pd.addFile(callbackMapper);
}
if (pd.getName().equals("balloon")) {
TokenFile tokenFile = new TokenFile();
tokenFile.setName("Token.java");
tokenFile.setName("Token");
tokenFile.setFileID(UUID.randomUUID().toString());
pd.addFile(tokenFile);
}
......@@ -164,6 +173,9 @@ public class PackageStructureBuilder {
PnmlFile pnmlFile = new PnmlFile();
pnmlFile.setName("PetriNet-" + i + ".pnml");
pnmlFile.setFileID(UUID.randomUUID().toString());
pnmlFile.setSourcePath(petriNetFilePaths.get(i).net);
String[] splitSourcePath = petriNetFilePaths.get(i).net.split("/");
pnmlFile.setSourceName(splitSourcePath[splitSourcePath.length - 1]);
pd.addFile(pnmlFile);
}
}
......@@ -310,14 +322,15 @@ public class PackageStructureBuilder {
if(pf.isTokenFile()){
String tokenClass = dinerosPackage.generateTokenClass();
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(packagePath + "/src/main/java/tudresden/inf/st/pnml/" +
dinerosPackage.getNamespace()), StandardCharsets.UTF_8))) {
/* try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(packagePath + "/" + dinerosPackage.getRootName() + "/src/main/java/tudresden/inf/st/" +
dinerosPackage.getNamespace() + "/Token.java"), StandardCharsets.UTF_8))) {
writer.write(tokenClass);
}
catch (IOException ex) {
System.out.println("ERROR: " + ex.getMessage());
}
System.err.println("ERROR: " + ex.getMessage());
ex.printStackTrace();
}*/
}
}
}
......@@ -333,6 +346,7 @@ public class PackageStructureBuilder {
pf.setName("PetriNet-" + i + ".pnml");
Path copied = Paths.get(packagePath + "/src/main/resources/nets/" + pf.getName());
Path originalPath = Paths.get(netPaths.get(i).net);
System.out.println("Before Copy PNML:" + originalPath + " --> " + copied);
Files.copy(originalPath, copied, StandardCopyOption.REPLACE_EXISTING);
System.out.println("Copy PNML:" + originalPath + " --> " + copied);
}
......@@ -360,14 +374,18 @@ public class PackageStructureBuilder {
for (int i = 0; i < nets.size(); i++) {
for (PackageFile pf : dinerosPackage.allPackageFiles()) {
if (!visitedPackageFileIDs.contains(pf.getFileID())) {
visitedPackageFileIDs.add(pf.getFileID());
if (pf.isNodeFile()) {
pf.setName("Node" + i);
String[] splitNodeFileId = pf.getFileID().split("-");
if (pf.isNodeFile() && i == Integer.valueOf(splitNodeFileId[1])) {
pf.setName("Node" + splitNodeFileId[1]);
pf.asNodeFile().generate();
break;
}
}
for (PackageFile pf : dinerosPackage.allPackageFiles()) {
if (!visitedPackageFileIDs.contains(pf.getFileID())) {
visitedPackageFileIDs.add(pf.getFileID());
if (pf.isSubscriberFile()) {
for (Transition t : nets.get(i).allTransitions()) {
......@@ -464,13 +482,22 @@ public class PackageStructureBuilder {
if (packageDirectory.getNumFile() > 0) {
for (PackageFile pf : packageDirectory.getFileList()) {
if (pf.isStaticFile()) {
if (pf.isStaticFile() && !pf.isTokenFile()) {
Path copied;
if(pf.isPnmlFile()){
copied = Paths.get(packagePath + "/" + packageDirectory.getName() + "/" + pf.asPnmlFile().getSourceName());
}else {
copied = Paths.get(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName());
}
Path copied = Paths.get(packagePath + "/" + packageDirectory.getName() + "/" + pf.getName());
Path originalPath;
if (pf.getName().contains(".java")) {
originalPath = Paths.get(FILE_PATH + "/" + pf.getName().split("\\.")[0]);
} else if (pf.isPnmlFile()) {
originalPath = Paths.get(pf.asPnmlFile().getSourcePath());
} else {
originalPath = Paths.get(FILE_PATH + "/" + pf.getName());
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment