From 68ce3dc701708165199816da6940f35c580d78af Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Fri, 23 Jun 2023 16:46:08 +0200
Subject: [PATCH] working on service transforms

---
 .../transforms/ServiceChannelTransforms.jadd  |  17 +++
 .../ServicePrototypeTransforms.jadd           |   1 +
 .../templates/ServiceConnectionTemplate.pnml  | 133 +++++-------------
 3 files changed, 55 insertions(+), 96 deletions(-)
 create mode 100644 src/main/jastadd/flatter/transforms/ServiceChannelTransforms.jadd

diff --git a/src/main/jastadd/flatter/transforms/ServiceChannelTransforms.jadd b/src/main/jastadd/flatter/transforms/ServiceChannelTransforms.jadd
new file mode 100644
index 0000000..4f99a82
--- /dev/null
+++ b/src/main/jastadd/flatter/transforms/ServiceChannelTransforms.jadd
@@ -0,0 +1,17 @@
+aspect ServiceChannelTransforms {
+
+    syn boolean DinerosTransition.canTransformServiceTransition() {
+        return this.getStaticTransitionInformation().isServiceTransitionInformation();
+    }
+
+    syn Page Page.transformServiceElement() {
+
+        Page res = new Page();
+
+
+
+
+        return res;
+    }
+
+}
\ No newline at end of file
diff --git a/src/main/jastadd/flatter/transforms/ServicePrototypeTransforms.jadd b/src/main/jastadd/flatter/transforms/ServicePrototypeTransforms.jadd
index 2f3b562..e9e0f4c 100644
--- a/src/main/jastadd/flatter/transforms/ServicePrototypeTransforms.jadd
+++ b/src/main/jastadd/flatter/transforms/ServicePrototypeTransforms.jadd
@@ -8,6 +8,7 @@ aspect ServicePrototypeTransforms {
             && (!getId().endsWith(PnmlConstants.PAGE_SERVER_INSTANCE_SUFFIX)));
     }
 
+    // apply rule S3
     syn Page Page.transformPrototypePage() {
 
         int serverCapacity = 0;
diff --git a/src/main/resources/templates/ServiceConnectionTemplate.pnml b/src/main/resources/templates/ServiceConnectionTemplate.pnml
index a798dcb..4d8024e 100644
--- a/src/main/resources/templates/ServiceConnectionTemplate.pnml
+++ b/src/main/resources/templates/ServiceConnectionTemplate.pnml
@@ -3,7 +3,7 @@
         <name>
             <text>DinerosTemplate</text>
         </name>
-        <page id="ServiceTemplatePage">
+        <page id="DinerosTemplatePage">
             <place id="ServiceTogglePlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
@@ -26,7 +26,7 @@
                 </graphics>
             </place>
 
-            <place id="ClientToServicePlace">
+            <place id="ServiceClientCallConnectPlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -35,7 +35,7 @@
                     </outputsignalbindings>
                 </toolspecific>
                 <name>
-                    <text>ClientToServicePlace</text>
+                    <text>ServiceClientCallConnectPlace</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -48,7 +48,7 @@
                 </graphics>
             </place>
 
-            <place id="InputToOutputServicePlace">
+            <place id="ServiceClientRespConnectPlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -57,7 +57,7 @@
                     </outputsignalbindings>
                 </toolspecific>
                 <name>
-                    <text>InputToOutputServicePlace</text>
+                    <text>ServiceClientRespConnectPlace</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -70,7 +70,7 @@
                 </graphics>
             </place>
 
-            <place id="ServiceOutputPlace">
+            <place id="ServiceClientCallPlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -79,7 +79,7 @@
                     </outputsignalbindings>
                 </toolspecific>
                 <name>
-                    <text>ServiceOutputPlace</text>
+                    <text>ServiceClientCallPlace</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -92,8 +92,7 @@
                 </graphics>
             </place>
 
-            <!-- new places after rework -->
-            <place id="ServiceToQueuePlace">
+            <place id="ServiceClientRespPlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -102,7 +101,7 @@
                     </outputsignalbindings>
                 </toolspecific>
                 <name>
-                    <text>ServiceToQueuePlace</text>
+                    <text>ServiceClientRespPlace</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -115,29 +114,7 @@
                 </graphics>
             </place>
 
-            <place id="ServiceQueueToServerPlace">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <location>none</location>
-                    <subnet>none</subnet>
-                    <type>discretePlaceType</type>
-                    <outputsignalbindings>
-                    </outputsignalbindings>
-                </toolspecific>
-                <name>
-                    <text>ServiceQueueToServerPlace</text>
-                    <graphics>
-                        <offset x="0" y="0" />
-                    </graphics>
-                </name>
-                <initialMarking>
-                    <text>0</text>
-                </initialMarking>
-                <graphics>
-                    <position x="0" y="0"/>
-                </graphics>
-            </place>
-
-            <transition id="ServiceClientInputTransition">
+            <transition id="ServiceClientCallConnectTransition">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -147,7 +124,7 @@
                     <inputsignalclause></inputsignalclause>
                 </toolspecific>
                 <name>
-                    <text>ServiceClientInputTransition</text>
+                    <text>ServiceClientCallConnectTransition</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -157,7 +134,7 @@
                 </graphics>
             </transition>
 
-            <transition id="ServiceServerInputTransition">
+            <transition id="ServiceClientRespConnectTransition">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -167,7 +144,7 @@
                     <inputsignalclause></inputsignalclause>
                 </toolspecific>
                 <name>
-                    <text>ServiceServerInputTransition</text>
+                    <text>ServiceClientRespConnectTransition</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -177,7 +154,7 @@
                 </graphics>
             </transition>
 
-            <transition id="ServiceServerOutputTransition">
+            <transition id="ServiceClientCallTransition">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -187,7 +164,7 @@
                     <inputsignalclause></inputsignalclause>
                 </toolspecific>
                 <name>
-                    <text>ServiceServerOutputTransition</text>
+                    <text>ServiceClientCallTransition</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -197,7 +174,7 @@
                 </graphics>
             </transition>
 
-            <transition id="ServiceClientOutputTransition">
+            <transition id="ServiceClientRespTransition">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
@@ -207,7 +184,7 @@
                     <inputsignalclause></inputsignalclause>
                 </toolspecific>
                 <name>
-                    <text>ServiceClientOutputTransition</text>
+                    <text>ServiceClientRespTransition</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
@@ -217,95 +194,59 @@
                 </graphics>
             </transition>
 
-            <transition id="ServiceClientConnectorTransition">
+            <!-- the reference target is just used here, because pnml does not allow dangling refs -->
+            <referencePlace id="ServiceCallRefPlace" ref="ServiceTogglePlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
-                    <type>discreteTransitionType</type>
-                    <inputsignalbindings>
-                    </inputsignalbindings>
-                    <inputsignalclause></inputsignalclause>
                 </toolspecific>
                 <name>
-                    <text>ServiceClientConnectorTransition</text>
+                    <text>ServiceCallRefPlace</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
                 </name>
                 <graphics>
-                    <position x="0" y="0"/>
+                    <position x="20" y="20"/>
                 </graphics>
-            </transition>
+            </referencePlace>
 
-            <!-- new transitions after rework -->
-            <transition id="ServiceQueueConnectorTransition">
+            <!-- the reference target is just used here, because pnml does not allow dangling refs -->
+            <referencePlace id="ServiceRespRefPlace" ref="ServiceTogglePlace">
                 <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
                     <location>none</location>
                     <subnet>none</subnet>
-                    <type>discreteTransitionType</type>
-                    <inputsignalbindings>
-                    </inputsignalbindings>
-                    <inputsignalclause></inputsignalclause>
-                </toolspecific>
-                <name>
-                    <text>ServiceQueueConnectorTransition</text>
-                    <graphics>
-                        <offset x="0" y="0" />
-                    </graphics>
-                </name>
-                <graphics>
-                    <position x="0" y="0"/>
-                </graphics>
-            </transition>
-
-            <transition id="ServiceQueueOverflowTransition">
-                <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1">
-                    <location>none</location>
-                    <subnet>none</subnet>
-                    <type>discreteTransitionType</type>
-                    <inputsignalbindings>
-                    </inputsignalbindings>
-                    <inputsignalclause></inputsignalclause>
                 </toolspecific>
                 <name>
-                    <text>ServiceQueueOverflowTransition</text>
+                    <text>ServiceRespRefPlace</text>
                     <graphics>
                         <offset x="0" y="0" />
                     </graphics>
                 </name>
                 <graphics>
-                    <position x="0" y="0"/>
+                    <position x="20" y="20"/>
                 </graphics>
-            </transition>
+            </referencePlace>
 
-            <arc id="arc-1" source="ServiceTogglePlace" target="ServiceClientInputTransition">
+            <arc id="arc-1" source="ServiceCallRefPlace" target="ServiceClientCallConnectTransition">
             </arc>
-            <arc id="arc-2" source="ServiceClientInputTransition" target="ClientToServicePlace">
+            <arc id="arc-2" source="ServiceTogglePlace" target="ServiceClientCallConnectTransition">
             </arc>
-            <!-- <arc id="arc-3" source="ClientToServicePlace" target="ServiceServerInputTransition">
-            </arc> -->
-            <arc id="arc-4" source="ServiceServerInputTransition" target="InputToOutputServicePlace">
+            <arc id="arc-3" source="ServiceClientCallConnectTransition" target="ServiceClientCallConnectPlace">
             </arc>
-            <arc id="arc-5" source="InputToOutputServicePlace" target="ServiceServerOutputTransition">
+            <arc id="arc-4" source="ServiceClientCallConnectPlace" target="ServiceClientCallTransition">
             </arc>
-            <arc id="arc-6" source="ServiceServerOutputTransition" target="ServiceOutputPlace">
+            <arc id="arc-5" source="ServiceClientCallTransition" target="ServiceClientCallPlace">
             </arc>
-            <arc id="arc-7" source="ServiceOutputPlace" target="ServiceClientOutputTransition">
+            <arc id="arc-6" source="ServiceClientRespConnectTransition" target="ServiceTogglePlace">
             </arc>
-            <arc id="arc-8" source="ServiceClientOutputTransition" target="ServiceTogglePlace">
+            <arc id="arc-7" source="ServiceClientRespConnectTransition" target="ServiceRespRefPlace">
             </arc>
-
-            <!-- new arcs after rework -->
-            <arc id="arc-9" source="ClientToServicePlace" target="ServiceClientConnectorTransition">
-            </arc>
-
-         <!--   <arc id="arc-10" source="ServiceQueueConnectorTransition" target="ServiceToQueuePlace">
-            </arc> -->
-            <arc id="arc-11" source="ServiceToQueuePlace" target="ServiceQueueConnectorTransition">
+            <arc id="arc-8" source="ServiceClientRespConnectPlace" target="ServiceClientRespConnectTransition">
             </arc>
-            <arc id="arc-12" source="ServiceToQueuePlace" target="ServiceQueueOverflowTransition">
+            <arc id="arc-9" source="ServiceClientRespTransition" target="ServiceClientRespConnectPlace">
             </arc>
-            <arc id="arc-13" source="ServiceQueueConnectorTransition" target="ServiceQueueToServerPlace">
+            <arc id="arc-10" source="ServiceClientRespPlace" target="ServiceClientRespTransition">
             </arc>
 
         </page>
-- 
GitLab