From ca3050ba1ccd6b99f0ab081927f706e284fe7771 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Tue, 16 Jun 2026 11:43:52 +0200 Subject: [PATCH 1/5] get rid of Ne2 and Ne14 signallings in column AP --- .../table/pt1/ssks/SsksTransformator.xtend | 38 ++++++------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend index 4c7abc45f..9e978b8f1 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend @@ -992,26 +992,11 @@ class SsksTransformator extends AbstractSignalTableTransform { private static def List fillSignalisierungWeitere(Signal signal, List signalRahmen) { - // 1.Case: Signal_Rahmen contains Ne2 or Ne14 - val rahmen = signalRahmen.filter [ - !signalbegriffe.filter [ - signalbegriffID instanceof Ne2 || - signalbegriffID instanceof Ne14 - ].empty - ].toList - if (!rahmen.nullOrEmpty) { - return rahmen.map[IDRegelzeichnung?.value].filterNull.map [ - fillRegelzeichnung - ].toList - } - - // 2.Case: It give another Signal Ne2/Ne14, which have same Mast with current Signal val sameMastSignal = signalRahmen.map[IDSignalBefestigung?.value]. filterNull.flatMap [ attachmentSignal ].filter [ - it !== signal && (hasSignalbegriffID(typeof(Ne2)) || - hasSignalbegriffID(typeof(Ne14))) + it !== signal ].toList if (sameMastSignal.nullOrEmpty) { return #[] @@ -1243,19 +1228,18 @@ class SsksTransformator extends AbstractSignalTableTransform { [throw new RuntimeException(e)] ) } - + override protected getSideDistanceMastType() { return List.of(ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_HOCH, - ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_NIEDRIG, - ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_HOCH, - ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_NIEDRIG, - ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_HOCH, - ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_NIEDRIG, - ENUM_BEFESTIGUNG_ART_PFOSTEN_HOCH, - ENUM_BEFESTIGUNG_ART_PFOSTEN_NIEDRIG, - ENUM_BEFESTIGUNG_ART_ARBEITSBUEHNE, - ENUM_BEFESTIGUNG_ART_OL_MAST, ENUM_BEFESTIGUNG_ART_WAND, - ENUM_BEFESTIGUNG_ART_DACH_DECKE); + ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_NIEDRIG, + ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_HOCH, + ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_NIEDRIG, + ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_HOCH, + ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_NIEDRIG, + ENUM_BEFESTIGUNG_ART_PFOSTEN_HOCH, + ENUM_BEFESTIGUNG_ART_PFOSTEN_NIEDRIG, + ENUM_BEFESTIGUNG_ART_ARBEITSBUEHNE, ENUM_BEFESTIGUNG_ART_OL_MAST, + ENUM_BEFESTIGUNG_ART_WAND, ENUM_BEFESTIGUNG_ART_DACH_DECKE); } } From f73c19d4476af22d6d1cb8fef2c5b0061b8b661d Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Tue, 16 Jun 2026 14:13:02 +0200 Subject: [PATCH 2/5] add regelzeichnungen into column R --- .../ssks/AbstractSignalTableTransform.java | 50 +++++++++++++------ .../extensions/SignalRahmenExtensions.xtend | 15 ++++++ 2 files changed, 51 insertions(+), 14 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java index bc6d567f1..4ba5cdda3 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java @@ -21,7 +21,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; -import java.util.stream.Stream; import org.eclipse.set.basis.graph.TopPoint; import org.eclipse.set.core.services.enumtranslation.EnumTranslationService; @@ -37,7 +36,6 @@ import org.eclipse.set.model.planpro.Signale.Signal; import org.eclipse.set.model.planpro.Signale.Signal_Befestigung; import org.eclipse.set.model.planpro.Signale.Signal_Rahmen; -import org.eclipse.set.model.planpro.Verweise.ID_Regelzeichnung_TypeClass; import org.eclipse.set.model.tablemodel.ColumnDescriptor; import org.eclipse.set.model.tablemodel.Table; import org.eclipse.set.model.tablemodel.TableRow; @@ -50,6 +48,7 @@ import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup; import org.eclipse.set.ppmodel.extensions.geometry.GEOKanteGeometryExtensions; import org.eclipse.set.utils.math.BigDecimalExtensions; +import org.eclipse.set.utils.table.AbstractTableModelTransformator; import org.eclipse.set.utils.table.RowFactory; import org.eclipse.set.utils.table.TMFactory; import org.eclipse.xtext.xbase.lib.Pair; @@ -259,18 +258,7 @@ protected void fillGenerallyColumns(final TableRow row, // konstruktive_Merkmale.Anordnung.Regelzeichnung fillIterable(row, getRegelzeichnungColumn(), signalRahmen, - rahmen -> rahmen.stream().flatMap(r -> { - final Signal_Befestigung signalBefestigung = SignalRahmenExtensions - .getSignalBefestigung(r); - if (signalBefestigung == null) { - return Stream.empty(); - } - return signalBefestigung.getIDRegelzeichnung() - .stream() - .map(ID_Regelzeichnung_TypeClass::getValue) - .filter(Objects::nonNull) - .map(z -> fillRegelzeichnung(z)); - }).toList(), null); + rahmen -> transformRegelzeichnung(row, rahmen), null); // konstruktive_Merkmale.Fundament.Art_Regelzeichnung fillIterable(row, getArtRegelzeichnungColumn(), signalRahmen, @@ -292,6 +280,40 @@ protected void fillGenerallyColumns(final TableRow row, value -> BigDecimalExtensions.toTableInteger(value, 1000)); } + protected Iterable transformRegelzeichnung(final TableRow row, + final List rahmen) { + // transform all regelzeichnungen of the signal befestigungen until the + // fundament + final List regelzeichnungen = rahmen.stream().flatMap(r -> { + final List befestigungen = new ArrayList<>(); + befestigungen.add(SignalRahmenExtensions.getSignalBefestigung(r)); + befestigungen.addAll( + SignalRahmenExtensions.getBefestigungUntilFundament(r)); + return befestigungen.stream(); + }) + .flatMap(b -> b.getIDRegelzeichnung().stream()) + .map(r -> EObjectExtensions + .getNullableObject(r, e -> e.getValue()) + .orElse(null)) + .filter(Objects::nonNull) + .map(AbstractTableModelTransformator::fillRegelzeichnung) + .toList(); + // transform all regelzeichnungen of the signal rahmen itself + final List rahmenRegelzeichungen = rahmen.stream() + .map(r -> EObjectExtensions + .getNullableObject(r, + e -> e.getIDRegelzeichnung().getValue()) + .orElse(null)) + .filter(Objects::nonNull) + .map(AbstractTableModelTransformator::fillRegelzeichnung) + .toList(); + // collect them + final Set result = new HashSet<>(); + result.addAll(regelzeichnungen); + result.addAll(rahmenRegelzeichungen); + return result; + } + protected Iterable transformRegelzeichnungArt(final TableRow row, final List rahmen) { final List fundamenten = rahmen.stream() diff --git a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SignalRahmenExtensions.xtend b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SignalRahmenExtensions.xtend index c12567829..886eccca2 100644 --- a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SignalRahmenExtensions.xtend +++ b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SignalRahmenExtensions.xtend @@ -24,6 +24,7 @@ import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.* import static extension org.eclipse.set.ppmodel.extensions.SignalBefestigungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalbegriffExtensions.* +import java.util.List /** * This class extends {@link Signal_Rahmen}. @@ -157,4 +158,18 @@ class SignalRahmenExtensions extends BasisObjektExtensions { Signal_Rahmen signalRahmen) { return new SignalBefestigungIterator(signalRahmen) } + + /** + * @param signalRahmen this Signalrahmen + * + * @returns chain of Signalbefestigungen until the fundament. The chain is excluding the fundament. + */ + def static List getBefestigungUntilFundament(Signal_Rahmen signalRahmen) { + val befestigungen = signalRahmen?.signalBefestigungIterator?.takeWhile[ + signalBefestigungAllg?.befestigungArt?.wert != + ENUM_BEFESTIGUNG_ART_FUNDAMENT + ].toList + return befestigungen; + + } } From aba83a6da6c9b0e1d1528d4084d015e571dab626 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Wed, 17 Jun 2026 02:03:13 +0200 Subject: [PATCH 3/5] update header of column AP in ssks vorlage --- .../data/export/excel/ssks_vorlage.xlsx | Bin 24598 -> 24611 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature/rootdir/data/export/excel/ssks_vorlage.xlsx b/java/bundles/org.eclipse.set.feature/rootdir/data/export/excel/ssks_vorlage.xlsx index 4bce469c075b40c2f47984c83364a4c2178df2e7..2e3894e3fad34c63b0e2a7aff385b269eb9f55aa 100644 GIT binary patch delta 7441 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 From 24910d36409b6bf74c53de0c15035eb731860e55 Mon Sep 17 00:00:00 2001 From: eclipse-set-bot Date: Wed, 17 Jun 2026 00:20:59 +0000 Subject: [PATCH 4/5] Update table reference --- .../table_reference/pphn_1_10_0_3/diffState/ssks_reference.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/diffState/ssks_reference.csv b/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/diffState/ssks_reference.csv index 5c7efb104..980c9f30b 100644 --- a/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/diffState/ssks_reference.csv +++ b/java/bundles/org.eclipse.set.swtbot/test_res/table_reference/pphn_1_10_0_3/diffState/ssks_reference.csv @@ -23,7 +23,7 @@ schaltung​​​​​​​​​​​​​​​​​​​​​​​ (Zusatzanzeiger)​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​";"Nach- geordnetes Signal​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​";Mastschild​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;"Weitere (z. B. ETCS-Halttafel, -Vorsignaltafel)​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​";Automatische Fahrtstellung​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;"Dunkel- +Lf-Signal)​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​";Automatische Fahrtstellung​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;"Dunkel- schaltung​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​";Durchfahrt erlaubt​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;Besetzte Ausfahrt​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;Löschung Zs 1/Zs 7​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;Überwachung​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;Überwachung​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​;Bemerkung​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ;Bezeichnung Signal;Reales Signal​;Funktion ohne Signal​​;Fiktives Signal​​​;Strecke​​​​;km​​​​​;Sonstige zulässige Anordnung​​​​​​;"Lichtraum- profil​​​​​​​";"Über- From 14f17c5e83a7c66e20b4a91289bb2bc22a598741 Mon Sep 17 00:00:00 2001 From: Marius Heine Date: Thu, 18 Jun 2026 10:03:45 +0200 Subject: [PATCH 5/5] separate calculation of Regelzeichnung in sskx --- .../ssks/AbstractSignalTableTransform.java | 48 +++--------------- .../table/pt1/ssks/SsksTransformator.xtend | 49 ++++++++++++------- .../table/pt1/sskx/SskxTransformator.java | 22 +++++++-- 3 files changed, 55 insertions(+), 64 deletions(-) diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java index 4ba5cdda3..074f4b40d 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/AbstractSignalTableTransform.java @@ -10,7 +10,12 @@ */ package org.eclipse.set.feature.table.pt1.ssks; -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.*; +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_HOCH; +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_NIEDRIG; +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_HOCH; +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_NIEDRIG; +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_HOCH; +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_NIEDRIG; import java.math.BigDecimal; import java.util.ArrayList; @@ -48,7 +53,6 @@ import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup; import org.eclipse.set.ppmodel.extensions.geometry.GEOKanteGeometryExtensions; import org.eclipse.set.utils.math.BigDecimalExtensions; -import org.eclipse.set.utils.table.AbstractTableModelTransformator; import org.eclipse.set.utils.table.RowFactory; import org.eclipse.set.utils.table.TMFactory; import org.eclipse.xtext.xbase.lib.Pair; @@ -256,10 +260,6 @@ protected void fillGenerallyColumns(final TableRow row, .collect(Collectors.toSet()), null); - // konstruktive_Merkmale.Anordnung.Regelzeichnung - fillIterable(row, getRegelzeichnungColumn(), signalRahmen, - rahmen -> transformRegelzeichnung(row, rahmen), null); - // konstruktive_Merkmale.Fundament.Art_Regelzeichnung fillIterable(row, getArtRegelzeichnungColumn(), signalRahmen, rahmen -> transformRegelzeichnungArt(row, rahmen), @@ -280,40 +280,6 @@ protected void fillGenerallyColumns(final TableRow row, value -> BigDecimalExtensions.toTableInteger(value, 1000)); } - protected Iterable transformRegelzeichnung(final TableRow row, - final List rahmen) { - // transform all regelzeichnungen of the signal befestigungen until the - // fundament - final List regelzeichnungen = rahmen.stream().flatMap(r -> { - final List befestigungen = new ArrayList<>(); - befestigungen.add(SignalRahmenExtensions.getSignalBefestigung(r)); - befestigungen.addAll( - SignalRahmenExtensions.getBefestigungUntilFundament(r)); - return befestigungen.stream(); - }) - .flatMap(b -> b.getIDRegelzeichnung().stream()) - .map(r -> EObjectExtensions - .getNullableObject(r, e -> e.getValue()) - .orElse(null)) - .filter(Objects::nonNull) - .map(AbstractTableModelTransformator::fillRegelzeichnung) - .toList(); - // transform all regelzeichnungen of the signal rahmen itself - final List rahmenRegelzeichungen = rahmen.stream() - .map(r -> EObjectExtensions - .getNullableObject(r, - e -> e.getIDRegelzeichnung().getValue()) - .orElse(null)) - .filter(Objects::nonNull) - .map(AbstractTableModelTransformator::fillRegelzeichnung) - .toList(); - // collect them - final Set result = new HashSet<>(); - result.addAll(regelzeichnungen); - result.addAll(rahmenRegelzeichungen); - return result; - } - protected Iterable transformRegelzeichnungArt(final TableRow row, final List rahmen) { final List fundamenten = rahmen.stream() @@ -384,8 +350,6 @@ protected void fillAbstandMastMitte(final TableRow row, protected abstract ColumnDescriptor getArtRegelzeichnungColumn(); - protected abstract ColumnDescriptor getRegelzeichnungColumn(); - protected abstract ColumnDescriptor getBefestigungColumn(); protected abstract Map getAbstandMastMitteColumn(); diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend index 22229a9d1..c0d99a2bd 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssks/SsksTransformator.xtend @@ -50,7 +50,6 @@ import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.MsWsGeWs import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.MsWsRtWs import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.MsWsSwWs import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.Ne14 -import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.Ne2 import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.OzBk import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.Sh1 import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.Vr0 @@ -91,6 +90,18 @@ import org.osgi.service.event.EventAdmin import static org.eclipse.set.feature.table.pt1.ssks.SsksColumns.* import static org.eclipse.set.model.planpro.Ansteuerung_Element.ENUMAussenelementansteuerungArt.* import static org.eclipse.set.model.planpro.Signale.ENUMAnschaltdauer.* +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_ARBEITSBUEHNE +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_DACH_DECKE +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_OL_MAST +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_PFOSTEN_HOCH +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_PFOSTEN_NIEDRIG +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_HOCH +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_NIEDRIG +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_HOCH +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_NIEDRIG +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_HOCH +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_NIEDRIG +import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_WAND import static org.eclipse.set.model.planpro.Signale.ENUMBeleuchtet.* import static org.eclipse.set.model.planpro.Signale.ENUMFiktivesSignalFunktion.* import static org.eclipse.set.model.planpro.Signale.ENUMGeltungsbereich.* @@ -112,18 +123,6 @@ import static extension org.eclipse.set.ppmodel.extensions.StellelementExtension import static extension org.eclipse.set.ppmodel.extensions.UnterbringungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.utils.math.BigDecimalExtensions.* -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_HOCH -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_PFOSTEN_HOCH -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_HOCH -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_DACH_DECKE -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_ARBEITSBUEHNE -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_MAST_NIEDRIG -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_WAND -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_HOCH -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_PFOSTEN_NIEDRIG -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_REGELANORDNUNG_SONSTIGE_NIEDRIG -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_OL_MAST -import static org.eclipse.set.model.planpro.Signale.ENUMBefestigungArt.ENUM_BEFESTIGUNG_ART_SONDERANORDNUNG_MAST_NIEDRIG /** * Table transformation for a Signaltabelle (Ssks). @@ -269,6 +268,10 @@ class SsksTransformator extends AbstractSignalTableTransform { ] ) + // R: Ssks.konstruktive_Merkmale.Anordnung.Regelzeichnung + fillIterable(row, cols.getColumn(Anordnung_Regelzeichnung), + signalRahmen, [transformRegelzeichnungen(row, it)], null); + // S: Ssks.konstruktive_Merkmale.Obere_Lichtpunkthoehe fillIterable( row, @@ -679,6 +682,22 @@ class SsksTransformator extends AbstractSignalTableTransform { ENUM_SIGNAL_FUNKTION_ALLEINSTEHENDES_ZUSATZSIGNAL) } + private static def Iterable transformRegelzeichnungen(TableRow row, + List rahmen) { + // transform all regelzeichnungen of the signal befestigungen until the + // fundament + val regelzeichnungen = rahmen.flatMap [ + #[#[it.signalBefestigung], it.befestigungUntilFundament].flatten + ].flatMap[IDRegelzeichnung].map[r|r?.value].filterNull.map [ + fillRegelzeichnung + ].toList(); + // transform all regelzeichnungen of the signal rahmen itself + val rahmenRegelzeichnungen = rahmen.map[IDRegelzeichnung?.value]. + filterNull.map[fillRegelzeichnung].toList(); + // collect them + return #[regelzeichnungen, rahmenRegelzeichnungen].flatten + } + private static def boolean hasSchaltkastenSeparatBezeichnung( Signal signal) { val stellelement = signal.stellelement @@ -1206,10 +1225,6 @@ class SsksTransformator extends AbstractSignalTableTransform { return cols.getColumn(Lichtraumprofil) } - override protected getRegelzeichnungColumn() { - return cols.getColumn(Anordnung_Regelzeichnung) - } - override protected getStreckeColumn() { return cols.getColumn(Strecke) } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskx/SskxTransformator.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskx/SskxTransformator.java index 9b2b55b72..d3b19e361 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskx/SskxTransformator.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskx/SskxTransformator.java @@ -54,8 +54,10 @@ import org.eclipse.set.model.planpro.Signale.ENUMGeltungsbereich; import org.eclipse.set.model.planpro.Signale.ENUMSignalFunktion; import org.eclipse.set.model.planpro.Signale.Signal; +import org.eclipse.set.model.planpro.Signale.Signal_Befestigung; import org.eclipse.set.model.planpro.Signale.Signal_Rahmen; import org.eclipse.set.model.planpro.Signale.Signal_Signalbegriff; +import org.eclipse.set.model.planpro.Verweise.ID_Regelzeichnung_TypeClass; import org.eclipse.set.model.tablemodel.ColumnDescriptor; import org.eclipse.set.model.tablemodel.TableRow; import org.eclipse.set.model.tablemodel.extensions.FootnoteExtensions; @@ -169,6 +171,21 @@ protected void fillSpecifyColumns(final TableRow row, .toList(), MIXED_STRING_COMPARATOR); + // J: Sskx.konstruktive_Merkmale.Anordnung.Regelzeichnung + fillIterable(row, getColumn(cols, SskxColumns.Regelzeichnung), + signalRahmen, rahmen -> rahmen.stream().flatMap(r -> { + final Signal_Befestigung signalBefestigung = SignalRahmenExtensions + .getSignalBefestigung(r); + if (signalBefestigung == null) { + return Stream.empty(); + } + return signalBefestigung.getIDRegelzeichnung() + .stream() + .map(ID_Regelzeichnung_TypeClass::getValue) + .filter(Objects::nonNull) + .map(z -> fillRegelzeichnung(z)); + }).toList(), null); + // M: Sskx.Signalisierung.Signalbegriffe.Bezeichnung fillIterable(row, getColumn(cols, SskxColumns.Signalbegriffe_Bezeichnung), signal, @@ -223,11 +240,6 @@ protected ColumnDescriptor getArtRegelzeichnungColumn() { return getColumn(cols, SskxColumns.Art_Regelzeichnung); } - @Override - protected ColumnDescriptor getRegelzeichnungColumn() { - return getColumn(cols, SskxColumns.Regelzeichnung); - } - @Override protected ColumnDescriptor getBefestigungColumn() { return getColumn(cols, SskxColumns.Befestigung);