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