From b929408470d33f8502f9d9d80e9443da9ad879ce Mon Sep 17 00:00:00 2001
From: Markus Hamann <markus.hamann1@tu-dresden.de>
Date: Tue, 3 Dec 2024 16:29:39 +0100
Subject: [PATCH] Fixed error with location deletion in extension script

---
 .../model_extension/saxony.transportation_network      | 10 +++-------
 .../model_extension/model_extension.etl                |  7 ++++---
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/model_examples/model_extension/saxony.transportation_network b/model_examples/model_extension/saxony.transportation_network
index c46e53e..bc072bf 100644
--- a/model_examples/model_extension/saxony.transportation_network
+++ b/model_examples/model_extension/saxony.transportation_network
@@ -3,13 +3,13 @@
   <roadnetworks identifier="DG/1" length="95.0" source="//@locations.0" target="//@locations.3">
     <roads identifier="A4" length="95.0"/>
   </roadnetworks>
-  <roadnetworks identifier="DL/3" length="20.0" source="//@locations.0" target="//@locations.5">
+  <roadnetworks identifier="DL/3" length="20.0" source="//@locations.0" target="//@locations.4">
     <roads identifier="A4" length="20.0"/>
   </roadnetworks>
-  <roadnetworks identifier="DL/2" length="67.0" source="//@locations.5" target="//@locations.6">
+  <roadnetworks identifier="DL/2" length="67.0" source="//@locations.4" target="//@locations.5">
     <roads identifier="A14" length="67.0"/>
   </roadnetworks>
-  <roadnetworks identifier="DL/1" length="15.0" source="//@locations.6" target="//@locations.2">
+  <roadnetworks identifier="DL/1" length="15.0" source="//@locations.5" target="//@locations.2">
     <roads identifier="A38" length="15.0"/>
   </roadnetworks>
   <roadnetworks identifier="DC/1" length="64.0" source="//@locations.0" target="//@locations.1">
@@ -44,10 +44,6 @@
   </locations>
   <locations/>
   <locations/>
-  <locations/>
-  <locations/>
-  <locations/>
-  <locations/>
   <routes identifier="R1" start="//@locations.0" end="//@locations.1">
     <vehicle identifier="V03" location="//@locations.0" model="eTruck" fuelCapacity="150.0"/>
   </routes>
diff --git a/stgroup.mdsd.transportation_network.transformation/model_extension/model_extension.etl b/stgroup.mdsd.transportation_network.transformation/model_extension/model_extension.etl
index e7cbd8c..dfc5bf7 100644
--- a/stgroup.mdsd.transportation_network.transformation/model_extension/model_extension.etl
+++ b/stgroup.mdsd.transportation_network.transformation/model_extension/model_extension.etl
@@ -34,6 +34,9 @@ rule SplitRoadNetworks
 	var originalRN:source!RoadNetwork = s.eContainer();
 	var network:source!TransportationNetwork = originalRN.eContainer();
 	
+	network.roadnetworks.add(rn);
+	network.locations.add(l);
+	
 	rn.identifier = originalRN.identifier + "/" + originalRN.roads.size();
 	rn.roads.add(s);
 	rn.length = s.length;
@@ -43,11 +46,9 @@ rule SplitRoadNetworks
 		delete l;
 	} else{
 		rn.target = l;
+		originalRN.source = l;
 	}
-	originalRN.source = l;
 	
-	network.roadnetworks.add(rn);
-	network.locations.add(l);
 }
 
 rule deleteEmptyRoadNetworks 
-- 
GitLab