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