From 85c45a4a8db2fa035b9e628585dee42c6f249aa2 Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Mon, 9 Jan 2023 18:19:19 +0100
Subject: [PATCH] untested fix of [flatter-1]

---
 .../flatter/transform/ChannelFlatter.java     | 38 +++++++++++++------
 1 file changed, 26 insertions(+), 12 deletions(-)

diff --git a/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java b/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java
index 48d0c1c..2b911f3 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/flatter/transform/ChannelFlatter.java
@@ -116,32 +116,46 @@ public class ChannelFlatter extends Flatter {
 
                     petriNet.flushTreeCache();
 
+                    InputSignalTransition dispatcherOutput = (InputSignalTransition) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_OUTPUT_TRANSITION + "-" + dispatcherCount);
+
                     // include subscriber queues
                     for (Place p : entry.getValue()) {
 
                         PetriNet subscriberNet = TopicTemplates.getTopicCallbackQueuePetriNet(String.valueOf(callbackCount), receiverCapacity);
                         includeTemplateInstance(petriNet, subscriberNet, entry.getKey(), p.asOutputSignalPlace().getStaticPlaceInformation().getLocation());
 
-                        Arc callbackInputArc = new Arc();
-                        Arc callbackOverFlowArc = new Arc();
-                        Arc callbackOutArc = new Arc();
+                    //    Arc callbackInputArc = new Arc();
+                  //      Arc callbackOverFlowArc = new Arc();
+                   //     Arc callbackOutArc = new Arc();
+
+                  //      callbackInputArc.setId("callbackInputArc-" + dispatcherCount);
+                  //      callbackOverFlowArc.setId("callbackOverFlowArc-" + dispatcherCount);
+                  //      callbackOutArc.setId("callbackOutArc-" + dispatcherCount);
+
+                        // callbackInputArc
+                        createAndIncludeArc(topPage, "callbackInputArc-" + dispatcherCount, (Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_OUTPUT_TRANSITION + "-" + dispatcherCount),
+                                (Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + callbackCount));
 
-                        callbackInputArc.setId("callbackInputArc-" + dispatcherCount);
-                        callbackOverFlowArc.setId("callbackOverFlowArc-" + dispatcherCount);
-                        callbackOutArc.setId("callbackOutArc-" + dispatcherCount);
+                        // callbackOverFlowArc
+                        createAndIncludeArc(topPage, "callbackOverFlowArc-" + dispatcherCount, (Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + dispatcherCount),
+                                (Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OVERFLOW_TRANSITION + "-" + callbackCount));
 
-                        callbackInputArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_OUTPUT_TRANSITION + "-" + dispatcherCount));
-                        callbackOverFlowArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + dispatcherCount));
+                        createAndIncludeArc(topPage, "callbackOutArc-" + dispatcherCount, (Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OUTPUT_TRANSITION + "-" + dispatcherCount), p);
 
-                        callbackInputArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + callbackCount));
-                        callbackOverFlowArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OVERFLOW_TRANSITION + "-" + callbackCount));
+                    //    callbackInputArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.DISPATCHER_OUTPUT_TRANSITION + "-" + dispatcherCount));
+                  //      callbackOverFlowArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + dispatcherCount));
 
-                        callbackOutArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OUTPUT_TRANSITION + "-" + callbackCount));
-                        callbackOutArc.setSource(p);
+                   //     callbackInputArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_INPUT_PLACE + "-" + callbackCount));
+                   //     callbackOverFlowArc.setTarget((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OVERFLOW_TRANSITION + "-" + callbackCount));
+
+                   //     callbackOutArc.setSource((Node) getPnObjectByID(petriNet, TemplateConstants.CALLBACK_OUTPUT_TRANSITION + "-" + callbackCount));
+                   //     callbackOutArc.setSource(p);
 
                         callbackCount++;
                     }
 
+                    // TODO: connect subscriber and dispatcher
+
                     dispatcherCount++;
                 }
 
-- 
GitLab