From 62a95b0f6d4c6a5cdb38e14917aca4b7f661c39b Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Wed, 21 Feb 2024 17:20:24 +0100
Subject: [PATCH] several fixes on structure

---
 src/main/jastadd/gen/Package.jadd             | 13 ++++++++++--
 .../inf/st/pnml/gen/data/TokenContext.java    | 18 ----------------
 .../pnml/gen/generators/JavaClassGenUtil.java | 12 ++++++-----
 .../mustache/JavaHandlerFunctions.mustache    | 13 ++++++++++++
 .../mustache/JavaHandlingBinder.mustache      | 15 +++++++++++++
 src/main/resources/mustache/JavaNode.mustache | 21 +++++++++++--------
 6 files changed, 58 insertions(+), 34 deletions(-)
 delete mode 100644 src/main/java/de/tudresden/inf/st/pnml/gen/data/TokenContext.java
 create mode 100644 src/main/resources/mustache/JavaHandlerFunctions.mustache
 create mode 100644 src/main/resources/mustache/JavaHandlingBinder.mustache

diff --git a/src/main/jastadd/gen/Package.jadd b/src/main/jastadd/gen/Package.jadd
index f49af27..9b1731a 100644
--- a/src/main/jastadd/gen/Package.jadd
+++ b/src/main/jastadd/gen/Package.jadd
@@ -28,8 +28,17 @@ aspect PackageGen {
         return res;
     }
 
-    syn String DinerosPackage.generateTokenClass(){
+    syn String BinderFile.generate(){
 
-        return de.tudresden.inf.st.pnml.gen.generators.JavaClassGenUtil.generateTokenClass(getNamespace());
+        String res = de.tudresden.inf.st.pnml.gen.generators.JavaClassGenUtil.generateBinderClass(dinerosPackage().getNamespace());
+        this.setFileContent(res);
+        return res;
+    }
+
+    syn String FunctionsFile.generate(){
+
+        String res = de.tudresden.inf.st.pnml.gen.generators.JavaClassGenUtil.generateFunctionsClass(dinerosPackage().getNamespace());
+        this.setFileContent(res);
+        return res;
     }
 }
\ No newline at end of file
diff --git a/src/main/java/de/tudresden/inf/st/pnml/gen/data/TokenContext.java b/src/main/java/de/tudresden/inf/st/pnml/gen/data/TokenContext.java
deleted file mode 100644
index 4496f52..0000000
--- a/src/main/java/de/tudresden/inf/st/pnml/gen/data/TokenContext.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package de.tudresden.inf.st.pnml.gen.data;
-
-public class TokenContext {
-
-    private String packageNamespace;
-
-    public TokenContext(String packageNamespace) {
-        this.packageNamespace = packageNamespace;
-    }
-
-    public String getPackageNamespace() {
-        return packageNamespace;
-    }
-
-    public void setPackageNamespace(String packageNamespace) {
-        this.packageNamespace = packageNamespace;
-    }
-}
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 a895433..87039c9 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
@@ -66,11 +66,13 @@ public class JavaClassGenUtil extends AbstractGenUtil{
         return generate(context, "JavaNode.mustache");
     }
 
-    public static String generateTokenClass(String packageNamespace){
+    public static String generateBinderClass(String packageNamespace){
+        // TODO
+        return null;
+    }
 
-        Map<String, Object> context = new HashMap<>();
-        TokenContext tokenContext = new TokenContext(packageNamespace);
-        context.put("tokenContext", tokenContext);
-        return generate(context, "JavaToken.mustache");
+    public static String generateFunctionsClass(String packageNamespace){
+        // TODO
+        return null;
     }
 }
diff --git a/src/main/resources/mustache/JavaHandlerFunctions.mustache b/src/main/resources/mustache/JavaHandlerFunctions.mustache
new file mode 100644
index 0000000..e7cf851
--- /dev/null
+++ b/src/main/resources/mustache/JavaHandlerFunctions.mustache
@@ -0,0 +1,13 @@
+{{#functionsContext}}
+    package de.tudresden.inf.st.{{{packageNamespace}}}.handling;
+
+    import java.util.ArrayList;
+    import java.util.List;
+    import java.util.Map;
+    import java.util.function.Function;
+
+
+    public final class HandlerFunctions {
+
+    }
+{{/functionsContext}}
\ No newline at end of file
diff --git a/src/main/resources/mustache/JavaHandlingBinder.mustache b/src/main/resources/mustache/JavaHandlingBinder.mustache
new file mode 100644
index 0000000..af5b40a
--- /dev/null
+++ b/src/main/resources/mustache/JavaHandlingBinder.mustache
@@ -0,0 +1,15 @@
+{{#handlingContext}}
+    package de.tudresden.inf.st.{{{packageNamespace}}}.handling;
+
+    import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
+
+    public final class HandlingBinder {
+
+        {{#nodeInfos}}
+            public static void bindHandlersTo{{{nodeName}}}(PetriNet petriNet){
+
+            }
+        {{/nodeInfos}}
+
+    }
+{{/handlingContext}}
\ No newline at end of file
diff --git a/src/main/resources/mustache/JavaNode.mustache b/src/main/resources/mustache/JavaNode.mustache
index a34c6b8..7c06ec7 100644
--- a/src/main/resources/mustache/JavaNode.mustache
+++ b/src/main/resources/mustache/JavaNode.mustache
@@ -2,25 +2,28 @@
 package de.tudresden.inf.st.{{{packageNamespace}}}.nodes;
 
 import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode;
-import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage;
-import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking;
-import de.tudresden.inf.st.pnml.jastadd.model.PetriNet;
+import de.tudresden.inf.st.pnml.jastadd.model.*;
+
+import java.util.List;
 
 public class {{{nodeClassName}}} extends DiNeRosNode {
 
-    public {{{nodeClassName}}}(String nodeName, PetriNet petriNet) {
-        super(nodeName, petriNet);
+    public {{{nodeClassName}}}(String nodeName, PetriNet petriNet, String rcHost, String gcProtocol) {
+        super(nodeName, petriNet, rcHost, gcProtocol);
     }
 
-    public {{{nodeClassName}}}(String nodeName, PetriNet petriNet, BalloonMarking marking, BalloonCallbackStorage callbackStorage) {
-        super(nodeName, petriNet, marking, callbackStorage);
+    @Override
+    protected TransitionSelectionResult onChange(List<Transition> list) {
+
+        // TODO: Implementation by user
+        return new FiringSelectionNone();
     }
 
     @Override
-    protected void nodeLoop() {
+    protected TransitionSelectionResult onStartupEnded(List<Transition> list) {
 
         // TODO: Implementation by user
-
+        return new FiringSelectionNone();
     }
 }
 {{/nodeContext}}
\ No newline at end of file
-- 
GitLab