From ac10eea808f89916c4615ad175ee22dd7d222114 Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Mon, 24 Oct 2022 15:45:57 +0200
Subject: [PATCH] fixed deletion of duplicate transitions

---
 .../tudresden/inf/st/pnml/splitter/Main.java  |  4 ++--
 .../GlobalToLocalNetsPostProcessor.java       | 19 ++++++++++++-------
 .../postprocessing/PostProcessingUtils.java   | 12 ++++++++----
 3 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
index 1c30c57..182a311 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/Main.java
@@ -23,8 +23,8 @@ public class Main {
             return;
         }
 
-        // List<PetriNet> petriNets = PnmlParser.parsePnml("src/main/nets/topicTest1.pnml");
-         List<PetriNet> petriNets = PnmlParser.parsePnml(inputPath);
+        // List<PetriNet> petriNets = PnmlParser.parsePnml("/home/sebastian/git/dineros/pnml-relast-tools/pnml-relast-nets/src/main/resources/topicTestNets/structureTestNets/topic-structure-correct.pnml");
+        List<PetriNet> petriNets = PnmlParser.parsePnml(inputPath);
 
         List<List<PetriNet>> disconnectedPetriNets = new ArrayList<>();
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
index c4ba904..89f3add 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/GlobalToLocalNetsPostProcessor.java
@@ -402,7 +402,7 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
 
     private static PetriNet createdSeparatedNetByLocation(PetriNet petriNet, String location) {
 
-        logger.info("Removing elements without: " + location);
+        logger.info(">>> REMOVING ELEMENTS WITHOUT: " + location + " <<<");
 
         Set<String> removedTransitionIds = new HashSet<>();
         Set<String> removedPlaceIds = new HashSet<>();
@@ -438,44 +438,49 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
                     || removedPlaceIds.contains(arc.getSource().getId()) || removedPlaceIds.contains(arc.getTarget().getId())
                     || removedRefTransitionIds.contains(arc.getSource().getId()) || removedRefTransitionIds.contains(arc.getTarget().getId())
                     || removeRefPlaceIds.contains(arc.getSource().getId()) || removeRefPlaceIds.contains(arc.getTarget().getId())) {
-                logger.info("removing arc " + arc.getId() + " from net");
+                logger.info("REMOVING ARC " + arc.getId() + " from net");
                 arc.removeSelf();
             }
         }
 
         for (Place place : petriNet.allPlaces()) {
             if (!place.asOutputSignalPlace().getStaticPlaceInformation().getLocation().equals(location)) {
-                logger.info("removing place " + place.getId() + " from net");
+                logger.info("REMOVING PLACE " + place.getId() + " from net");
                 place.removeSelf();
             }
         }
 
         for (RefPlace place : petriNet.allRefPlaces()) {
             if (!place.getLocation().equals(location)) {
-                logger.info("removing ref place " + place.getId() + " from net");
+                logger.info("REMOVING REF PLACE " + place.getId() + " from net");
                 place.removeSelf();
             }
         }
 
         for (RefTransition transition : petriNet.allRefTransitions()) {
             if (!transition.getLocation().equals(location)) {
-                logger.info("removing ref transition " + transition.getId() + " from net");
+                logger.info("REMOVING REF TRANSITION " + transition.getId() + " from net");
                 transition.removeSelf();
             }
         }
 
         for (Transition transition : petriNet.allTransitions()) {
 
+            if (!transition.asInputSignalTransition().getStaticTransitionInformation().getLocation().equals(location)) {
+                logger.info("REMOVING TRANSITION " + transition.getId() + " from net");
+                transition.removeSelf();
+            }
+
             if(transition.asInputSignalTransition().getStaticTransitionInformation().isTopicTransitionInformation()){
                 if (!transition.asInputSignalTransition().getStaticTransitionInformation().asTopicTransitionInformation().getLocation().equals(location)) {
-                    logger.info("removing old topic transition " + transition.getId() + " from net");
+                    logger.info("REMOVING OLD TOPIC TRANSITION " + transition.getId() + " from net");
                     transition.removeSelf();
                 }
             }
 
             if(transition.asInputSignalTransition().getStaticTransitionInformation().isServiceTransitionInformation()){
                 if (!transition.asInputSignalTransition().getStaticTransitionInformation().asServiceTransitionInformation().getLocation().equals(location)) {
-                    logger.info("removing old service transition " + transition.getId() + " from net");
+                    logger.info("REMOVING OLD SERVICE TRANSITION " + transition.getId() + " from net");
                     transition.removeSelf();
                 }
             }
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
index 46f9114..969e4bb 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/postprocessing/PostProcessingUtils.java
@@ -213,12 +213,14 @@ public class PostProcessingUtils {
 
             if (t.asInputSignalTransition().getStaticTransitionInformation().isServiceTransitionInformation()) {
                 logger.info("--- Transition: " + t.getName().getText() + " subnet: " + t.asInputSignalTransition().getStaticTransitionInformation().getSubNet()
+                        + " location: " + t.asInputSignalTransition().getStaticTransitionInformation().getLocation()
                         + " service: " + t.asInputSignalTransition().getStaticTransitionInformation().asServiceTransitionInformation().getServiceName() + " ---------");
             } else if(t.asInputSignalTransition().getStaticTransitionInformation().isTopicTransitionInformation()){
                logger.info("--- Transition: " + t.getName().getText() + " subnet: " + t.asInputSignalTransition().getStaticTransitionInformation().getSubNet()
+                        + " location: " + t.asInputSignalTransition().getStaticTransitionInformation().getLocation()
                         + " topic: " + t.asInputSignalTransition().getStaticTransitionInformation().asTopicTransitionInformation().getTopic() + " ---------");
             }else{
-                logger.info("--- Transition: " + t.getId());
+                logger.info("--- Transition: " + t.getId() + " location: " + t.asInputSignalTransition().getStaticTransitionInformation().getLocation());
             }
 
             if(t.asInputSignalTransition().getInputSignalClause() != null && t.asInputSignalTransition().getInputSignalClause().getNumChild() > 0){
@@ -227,12 +229,14 @@ public class PostProcessingUtils {
 
             for (Place p : t.asInputSignalTransition().incomingPlaces()) {
 
-                logger.info("------ Inputplace:  " + p.getName().getText() + " subnet: " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet() + " ---------");
+                logger.info("------ Inputplace:  " + p.getName().getText() + " subnet: " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet()
+                        + " location: " + p.asOutputSignalPlace().getStaticPlaceInformation().getLocation() + " ---------");
             }
 
             for (Place p : t.asInputSignalTransition().outgoingPlaces()) {
 
-                logger.info("------ Outputplace: " + p.getName().getText() + " subnet: " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet() + " ---------");
+                logger.info("------ Outputplace: " + p.getName().getText() + " subnet: " + p.asOutputSignalPlace().getStaticPlaceInformation().getSubNet()
+                        + " location: " + p.asOutputSignalPlace().getStaticPlaceInformation().getLocation() + " ---------");
             }
         }
 
@@ -279,7 +283,7 @@ public class PostProcessingUtils {
         for (Transition t : petriNet.allTransitions()) {
             InputSignalTransition ist = t.asInputSignalTransition();
             if(ist != null && ist.getNumToolspecific() > 0) {
-                logger.info("ToolSpecific: (" + ist.getName().getText() + ") " + ist.getToolspecific(0).getFormattedXMLBuffer().toString());
+               // logger.info("ToolSpecific: (" + ist.getName().getText() + ") " + ist.getToolspecific(0).getFormattedXMLBuffer().toString());
             }
         }
     }
-- 
GitLab