From ceffd52ed379c53c499a71489627cbde7c86d7b6 Mon Sep 17 00:00:00 2001 From: Johannes Mey <johannes.mey@tu-dresden.de> Date: Thu, 28 Jun 2018 08:55:05 +0200 Subject: [PATCH] fix ConnectedSegmentsRepair tranformation. --- ...staddTransformationRepairConnectedSegments.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/repair/JastaddTransformationRepairConnectedSegments.java b/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/repair/JastaddTransformationRepairConnectedSegments.java index e101a48a9..14be6d3b9 100644 --- a/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/repair/JastaddTransformationRepairConnectedSegments.java +++ b/trainbenchmark-tool-jastadd-specialized-base/src/main/java/de/tudresden/inf/st/train/jastadd/transformations/repair/JastaddTransformationRepairConnectedSegments.java @@ -21,20 +21,18 @@ public class JastaddTransformationRepairConnectedSegments<TJastaddDriver extends final Segment segment2 = match.getSegment2(); + java.util.List<Sensor> sensorsToRemoveSegmentFrom = new java.util.ArrayList<>(); + // delete all references to segment2 (monitoring sensors and other segments connecting to it) for (Region region : driver.getModel().getRegionList()) { for (Sensor sensor : region.getSensorList()) { - for (int i = sensor.getMonitoredElementList().getNumChild() - 1; i >= 0; i--) { - if (sensor.getMonitoredElement(i) == segment2) { - sensor.getMonitoredElement(i).removeSelf(); - } + if (sensor.getMonitoredElementList().contains(segment2)) { + sensor.removeMonitoredElement(segment2); } } for (TrackElement element : region.getTrackElementList()) { - for (int i = element.getConnectsToList().getNumChild() - 1; i >= 0; i--) { - if (element.getConnectsTo(i) == segment2) { - element.getConnectsTo(i).removeSelf(); - } + if (element.getConnectsToList().contains(segment2)) { + element.removeConnectsTo(segment2); } } } -- GitLab