diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableModelTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableModelTransformator.xtend index f7b7add960..eaa10fbe69 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableModelTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableModelTransformator.xtend @@ -12,6 +12,7 @@ import java.util.ArrayList import java.util.Collections import java.util.Comparator import java.util.List +import java.util.Map import java.util.Set import org.eclipse.emf.common.util.Enumerator import org.eclipse.set.basis.constants.ToolboxConstants @@ -27,15 +28,13 @@ import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGrou import org.eclipse.set.utils.events.TableDataChangeEvent import org.eclipse.set.utils.table.AbstractTableModelTransformator import org.eclipse.set.utils.table.Pt1TableChangeProperties -import org.eclipse.set.utils.table.TMFactory import org.eclipse.set.utils.table.TableError import org.osgi.service.event.EventAdmin -import static extension org.eclipse.set.model.tablemodel.extensions.TableExtensions.* import static extension org.eclipse.set.model.tablemodel.extensions.TableRowExtensions.* import static extension org.eclipse.set.ppmodel.extensions.BasisAttributExtensions.* +import static extension org.eclipse.set.ppmodel.extensions.MultiContainer_AttributeGroupExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.CacheUtils.* -import java.util.Map abstract class AbstractPlanPro2TableModelTransformator extends AbstractTableModelTransformator { protected val FootnoteTransformation footnoteTransformation = new FootnoteTransformation() @@ -133,19 +132,6 @@ abstract class AbstractPlanPro2TableModelTransformator extends AbstractTableMode return column; } - override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory) { - val table = transformTableContent(container, factory, null) - table.tableRows.forEach [ row | - row.cells.forEach [ cell, index | - if (cell.content === null) { - fillBlank(row, index) - } - ] - ] - return table - } - def void fillSingleCellWhenAllowed( TableRow row, ColumnDescriptor column, @@ -297,9 +283,12 @@ abstract class AbstractPlanPro2TableModelTransformator extends AbstractTableMode ColumnDescriptor column, MultiContainer_AttributeGroup container, Exception e) { val errorMsg = createErrorMsg(e, row) - val guid = row.group.leadingObject?.identitaet?.wert - val leadingObject = getLeadingObjectIdentifier(row, guid) - tableErrors.add(new TableError(guid, leadingObject, "", errorMsg, row)) + val leadingObject = row.group.leadingObject + val errorIdentiefer = getLeadingObjectIdentifier(row, leadingObject?.identitaet?.wert) + val tableType = container.containerType.defaultTableType + val error = new TableError(leadingObject, errorIdentiefer, "", errorMsg, row) + error.tableType = tableType + tableErrors.add(error) return new Pt1TableChangeProperties(container, row, column, #['''«ERROR_PREFIX»«errorMsg»'''], ITERABLE_FILLING_SEPARATOR) } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableTransformationService.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableTransformationService.java index ea35460ae1..4cfa6d0964 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableTransformationService.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/AbstractPlanPro2TableTransformationService.java @@ -29,7 +29,6 @@ import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.eclipse.set.feature.table.PlanPro2TableTransformationService; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.tablemodel.ColumnDescriptor; import org.eclipse.set.model.tablemodel.Table; import org.eclipse.set.model.tablemodel.extensions.ColumnDescriptorExtensions; @@ -152,9 +151,8 @@ protected void setColumnTextAlignment(final Table table) { } @Override - public Table transform(final MultiContainer_AttributeGroup model, - final Stell_Bereich controlArea) { - final Table table = super.transform(model, controlArea); + public Table transform(final MultiContainer_AttributeGroup model) { + final Table table = super.transform(model); if (transformator instanceof final AbstractPlanPro2TableModelTransformator pt1TableTransformator) { pt1TableTransformator.updateWaitingFillCell(getShortcut()); pt1TableTransformator.getTopologicalCells() diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssbb/SsbbTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssbb/SsbbTransformator.xtend index bc60f8113a..3238b9aca1 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssbb/SsbbTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssbb/SsbbTransformator.xtend @@ -12,7 +12,6 @@ import com.google.common.collect.Lists import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Ansteuerung_Element.Stellelement import org.eclipse.set.model.planpro.Bedienung.Bedien_Einrichtung_Oertlich import org.eclipse.set.model.planpro.Ortung.FMA_Komponente @@ -25,6 +24,7 @@ import org.eclipse.set.model.tablemodel.TableRow import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup import org.eclipse.set.ppmodel.extensions.utils.Case import org.eclipse.set.utils.table.TMFactory +import org.osgi.service.event.EventAdmin import static org.eclipse.set.feature.table.pt1.ssbb.SsbbColumns.* @@ -35,9 +35,7 @@ import static extension org.eclipse.set.ppmodel.extensions.BueBedienAnzeigeExten import static extension org.eclipse.set.ppmodel.extensions.PunktObjektStreckeExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalExtensions.* import static extension org.eclipse.set.ppmodel.extensions.StellelementExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspElementExtensions.* -import org.osgi.service.event.EventAdmin class SsbbTransformator extends AbstractPlanPro2TableModelTransformator { @@ -50,15 +48,14 @@ class SsbbTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - container.bedienEinrichtungOertlich.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filter [ + MultiContainer_AttributeGroup container) { + container.bedienEinrichtungOertlich.filter [ !bedienAnzeigeElemente.map[bueBedienAnzeigeElemente].flatten. filterNull.empty ].forEach [ diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssit/SsitTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssit/SsitTransformator.xtend index 1e285d8620..039864213d 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssit/SsitTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssit/SsitTransformator.xtend @@ -12,7 +12,6 @@ import com.google.common.collect.Lists import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt import org.eclipse.set.model.planpro.Bedienung.Bedien_Einrichtung_Oertlich import org.eclipse.set.model.planpro.Schluesselabhaengigkeiten.Schluesselsperre @@ -23,6 +22,7 @@ import org.eclipse.set.model.tablemodel.Table import org.eclipse.set.model.tablemodel.TableRow import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup import org.eclipse.set.utils.table.TMFactory +import org.osgi.service.event.EventAdmin import static org.eclipse.set.feature.table.pt1.ssit.SsitColumns.* @@ -32,10 +32,8 @@ import static extension org.eclipse.set.ppmodel.extensions.NbBedienAnzeigeElemen import static extension org.eclipse.set.ppmodel.extensions.NbZoneElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.NbZoneExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektStreckeExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspKomponenteExtensions.* import static extension org.eclipse.set.utils.math.BigDecimalExtensions.* -import org.osgi.service.event.EventAdmin /** * Table transformation for a Bedieneinrichtungstabelle ESTW (Ssit). @@ -52,22 +50,21 @@ class SsitTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - container.bedienEinrichtungOertlich.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filter [ - bedienAnzeigeElemente.forall[bueBedienAnzeigeElemente.empty] - ].forEach [ it | - if (Thread.currentThread.interrupted) { - return - } - it.transform - ] + MultiContainer_AttributeGroup container) { + container.bedienEinrichtungOertlich.filter [ + bedienAnzeigeElemente.forall[bueBedienAnzeigeElemente.empty] + ].forEach [ it | + if (Thread.currentThread.interrupted) { + return + } + it.transform + ] return } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sska/SskaTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sska/SskaTransformator.xtend index 7b60b539f8..b25c28d444 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sska/SskaTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sska/SskaTransformator.xtend @@ -17,7 +17,6 @@ import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator import org.eclipse.set.model.planpro.Ansteuerung_Element.Aussenelementansteuerung import org.eclipse.set.model.planpro.Ansteuerung_Element.ESTW_Zentraleinheit -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Ansteuerung_Element.Technik_Standort import org.eclipse.set.model.planpro.Ansteuerung_Element.Unterbringung import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt @@ -36,7 +35,6 @@ import static extension org.eclipse.set.ppmodel.extensions.BasisAttributExtensio import static extension org.eclipse.set.ppmodel.extensions.BedienBezirkExtensions.* import static extension org.eclipse.set.ppmodel.extensions.ESTW_ZentraleinheitExtensions.* import static extension org.eclipse.set.ppmodel.extensions.UnterbringungExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.CollectionExtensions.* /** @@ -52,7 +50,7 @@ class SskaTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { val aussenelementansteuerungList = container.aussenelementansteuerung val estwzentraleinheitList = container.ESTWZentraleinheit @@ -61,8 +59,7 @@ class SskaTransformator extends AbstractPlanPro2TableModelTransformator { elementList.addAll(estwzentraleinheitList); elementList.addAll(aussenelementansteuerungList); // Basis_Objekt - for (element : elementList.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea)) { + for (element : elementList) { if (Thread.currentThread.interrupted) { return null } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskf/SskfTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskf/SskfTransformator.xtend index 2e6b22993f..47578ea499 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskf/SskfTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskf/SskfTransformator.xtend @@ -14,7 +14,6 @@ import java.util.Set import org.eclipse.set.basis.Wrapper import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Gleis.Gleis_Schaltgruppe import org.eclipse.set.model.planpro.Ortung.FMA_Anlage import org.eclipse.set.model.planpro.Weichen_und_Gleissperren.W_Kr_Gsp_Element @@ -30,7 +29,6 @@ import static org.eclipse.set.model.planpro.Ortung.ENUMUebertragungFMinfoRichtun import static extension org.eclipse.set.ppmodel.extensions.AussenelementansteuerungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.BereichObjektExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FmaAnlageExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspKomponenteExtensions.* @@ -50,11 +48,9 @@ class SskfTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { // Maßgebendes Objekt: FMA_Anlage - val Iterable fmaAnlageList = container.FMAAnlage.filter [ - isPlanningObject - ].filterObjectsInControlArea(controlArea) + val Iterable fmaAnlageList = container.FMAAnlage for (fmaAnlage : fmaAnlageList) { if (Thread.currentThread.interrupted) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskg/SskgTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskg/SskgTransformator.xtend index 3dd48a33ab..609d622dfd 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskg/SskgTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskg/SskgTransformator.xtend @@ -14,7 +14,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.TopologicalGraphService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Bahnuebergang.BUE_Anlage import org.eclipse.set.model.planpro.Bahnuebergang.BUE_Kante import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt @@ -35,7 +34,6 @@ import static extension org.eclipse.set.ppmodel.extensions.FmaKomponenteAchszaeh import static extension org.eclipse.set.ppmodel.extensions.FmaKomponenteExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektStreckeExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.ZugEinwirkungExtensions.* /** @@ -55,12 +53,10 @@ class SskgTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { val instances = new ArrayList - for (Zugeinwirkung ein : container.zugeinwirkung.filter [ - isPlanningObject - ].filterObjectsInControlArea(controlArea)) { + for (Zugeinwirkung ein : container.zugeinwirkung) { if (Thread.currentThread.interrupted) { return null } @@ -187,9 +183,7 @@ class SskgTransformator extends AbstractPlanPro2TableModelTransformator { instances.add(row); } - for (FMA_Komponente fma : container.FMAKomponente.filter [ - isPlanningObject - ].filterObjectsInControlArea(controlArea)) { + for (FMA_Komponente fma : container.FMAKomponente) { if (fma.FMAKomponenteAchszaehlpunkt !== null) { val TableRow row = factory.newTableRow(fma); // A: Sskg.Grundsatzangaben.Bezeichnung diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssko/SskoTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssko/SskoTransformator.xtend index 8dcdff0b5b..d9de416e15 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssko/SskoTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssko/SskoTransformator.xtend @@ -11,7 +11,6 @@ package org.eclipse.set.feature.table.pt1.ssko; import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_Zug_Rangier import org.eclipse.set.model.planpro.Schluesselabhaengigkeiten.Schloss import org.eclipse.set.model.planpro.Schluesselabhaengigkeiten.Schluesselsperre @@ -23,18 +22,14 @@ import org.osgi.service.event.EventAdmin import static org.eclipse.set.feature.table.pt1.ssko.SskoColumns.* -import static extension org.eclipse.set.ppmodel.extensions.AussenelementansteuerungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.BasisAttributExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FahrwegExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FstrAbhaengigkeitExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FstrZugRangierExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SchlossExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SchlosskombinationExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.SchluesselExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SchluesselsperreExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.* import static extension org.eclipse.set.ppmodel.extensions.UnterbringungExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* /** * Table transformation for a Schlosstabelle Entwurf (Ssko). @@ -49,11 +44,8 @@ class SskoTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { - for (Schloss schloss : container.getObjectInControlArea(controlArea). - filter [ - isPlanningObject - ]) { + TMFactory factory) { + for (Schloss schloss : container.schloss) { if (Thread.currentThread.interrupted) { return null } @@ -397,43 +389,4 @@ class SskoTransformator extends AbstractPlanPro2TableModelTransformator { val fstrFahrweg = fstrZugRangier?.fstrFahrweg return '''«fstrFahrweg?.start?.bezeichnung?.bezeichnungTabelle?.wert»/«fstrFahrweg?.zielSignal?.bezeichnung?.bezeichnungTabelle?.wert»''' } - - private def Iterable getObjectInControlArea( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - if (controlArea === null) { - return container.schloss - } - val result = newHashSet - // 1. Condition - // IMPROVE: Not completely, because the requirements for this case aren't clear - val stellelements = container.stellelement.map[IDInformation?.value]. - filterNull.filter[isBelongToControlArea(controlArea)] - val ssp = container.schluesselsperre.filter [ ssp | - stellelements.exists[it === ssp.IDStellelement.value] - ] - val schluessels = container.schloss.filter [ schloss | - ssp.exists[it === schloss.schlossSsp.IDSchluesselsperre.value] - ].map[schluesel].filterNull - result.addAll(schluessels.flatMap[schloesser]) - - // 2.Condition - result.filter[schlossSk?.hauptschloss.wert].flatMap [ schloss | - schloss.schlossSk.IDSchlosskombination?.value.schloesser.filter [ - it.schlossSk !== null && !it.schlossSk.hauptschloss.wert - ] - ].filterNull.map[schluesel].flatMap[schloesser].forEach[result.add(it)] - - // 3. Condition - container.schloss.filter [ schloss | - controlArea.wkrGspElement.exists [ gspElement | - schloss.schlossW?.IDWKrElement?.value === gspElement || - schloss.schlossGsp?.IDGspElement?.value === gspElement || - schloss.schlossSonderanlage?.IDSonderanlage?.value == - gspElement - ] - ].map[schluesel].flatMap[schloesser].toSet.filter [ - technischBerechtigter?.wert - ].forEach[result.add(it)] - return result - } } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformator.xtend index 467224f77e..ba607e8842 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformator.xtend @@ -14,7 +14,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.TopologicalGraphService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_DWeg @@ -45,7 +44,6 @@ import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions import static extension org.eclipse.set.ppmodel.extensions.SignalExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalRahmenExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalbegriffExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.IterableExtensions.* import static extension org.eclipse.set.utils.math.BigDecimalExtensions.* @@ -72,10 +70,9 @@ class SskpTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { - for (PZB_Element pzb : container.PZBElement.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filter [ + for (PZB_Element pzb : container.PZBElement.filter [ PZBElementGUE?.IDPZBElementMitnutzung?.value === null ]) { 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 994537da6b..fb671383b4 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 @@ -18,7 +18,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.BankService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Ansteuerung_Element.Unterbringung import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt import org.eclipse.set.model.planpro.Geodaten.Technischer_Punkt @@ -160,11 +159,10 @@ class SsksTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { // iterate signal-wise val sideDistancesSignal = newHashMap - for (Signal signal : container?.signal?.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filter[ssksSignal]) { + for (Signal signal : container?.signal?.filter[ssksSignal]) { if (Thread.currentThread.interrupted) { return null } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskt/SsktTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskt/SsktTransformator.xtend index acb24e94a3..9d573a383f 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskt/SsktTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskt/SsktTransformator.xtend @@ -11,7 +11,6 @@ package org.eclipse.set.feature.table.pt1.sskt import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Ansteuerung_Element.TSO_IP_AB_Teilsystem_AttributeGroup import org.eclipse.set.model.planpro.Ansteuerung_Element.Technik_Standort import org.eclipse.set.model.planpro.Ansteuerung_Element.Unterbringung @@ -31,7 +30,6 @@ import static org.eclipse.set.feature.table.pt1.sskt.SsktColumns.* import static extension org.eclipse.set.ppmodel.extensions.BedienStandortExtensions.* import static extension org.eclipse.set.ppmodel.extensions.TechnikStandortExtensions.* import static extension org.eclipse.set.ppmodel.extensions.UnterbringungExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* /** * Table transformation for Sskt. @@ -48,16 +46,14 @@ class SsktTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory - return container.transformToTable(controlArea) + return container.transformToTable } private def Table create factory.table transformToTable( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { + MultiContainer_AttributeGroup container) { (container.technikStandort + container.bedienStandort).filter [ - isPlanningObject - ].filterObjectsInControlArea(controlArea).filter [ generalbedingung ].forEach [ if (Thread.currentThread.interrupted) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskw/SskwTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskw/SskwTransformator.xtend index 4e24f3a37d..e651c7de83 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskw/SskwTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskw/SskwTransformator.xtend @@ -18,7 +18,6 @@ import org.eclipse.set.basis.constants.ToolboxConstants import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.session.SessionService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.BasisTypen.ENUMLinksRechts import org.eclipse.set.model.planpro.BasisTypen.ENUMWirkrichtung import org.eclipse.set.model.planpro.Geodaten.TOP_Kante @@ -56,7 +55,6 @@ import static extension org.eclipse.set.ppmodel.extensions.GleisAbschnittExtensi import static extension org.eclipse.set.ppmodel.extensions.MultiContainer_AttributeGroupExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalbegriffExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspKomponenteExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.IterableExtensions.* @@ -102,10 +100,9 @@ class SskwTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { xmlFinder = createEObjetXMLFinder(container) - val weichen = container.WKrGspElement.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea) + val weichen = container.WKrGspElement for (element : weichen) { if (Thread.currentThread.interrupted) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskz/SskzTransformator.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskz/SskzTransformator.java index 9a9c8e179b..42b2059b6a 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskz/SskzTransformator.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskz/SskzTransformator.java @@ -37,7 +37,6 @@ import org.eclipse.set.feature.table.pt1.ssks.SignalSideDistance; import org.eclipse.set.model.planpro.Ansteuerung_Element.Aussenelementansteuerung; import org.eclipse.set.model.planpro.Ansteuerung_Element.ENUMAussenelementansteuerungArt; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.planpro.Ansteuerung_Element.Stellelement; import org.eclipse.set.model.planpro.Ansteuerung_Element.Tueranschlag_TypeClass; import org.eclipse.set.model.planpro.Ansteuerung_Element.Unterbringung_Befestigung_TypeClass; @@ -56,7 +55,6 @@ import org.eclipse.set.model.tablemodel.TableRow; import org.eclipse.set.ppmodel.extensions.PZBElementExtensions; import org.eclipse.set.ppmodel.extensions.PunktObjektTopKanteExtensions; -import org.eclipse.set.ppmodel.extensions.UrObjectExtensions; import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup; import org.eclipse.set.ppmodel.extensions.utils.Case; import org.eclipse.set.utils.math.BigDecimalExtensions; @@ -132,14 +130,12 @@ public SskzTransformator(final Set cols, @Override public Table transformTableContent( final MultiContainer_AttributeGroup container, - final TMFactory factory, final Stell_Bereich controlArea) { + final TMFactory factory) { final List outsideControls = Streams .stream(container.getAussenelementansteuerung()) - .filter(UrObjectExtensions::isPlanningObject) .toList(); - final Iterable relevantControlsInArea = UrObjectExtensions - .filterObjectsInControlArea(outsideControls, controlArea); - return transform(relevantControlsInArea, factory); + + return transform(outsideControls, factory); } private Table transform(final Iterable controls, diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssla/SslaTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssla/SslaTransformator.xtend index 6f7e7b431b..2986833458 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssla/SslaTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssla/SslaTransformator.xtend @@ -13,7 +13,6 @@ import java.util.List import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_Aneinander import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_Aneinander_Zuordnung import org.eclipse.set.model.tablemodel.ColumnDescriptor @@ -26,7 +25,6 @@ import static org.eclipse.set.feature.table.pt1.ssla.SslaColumns.* import static extension org.eclipse.set.ppmodel.extensions.FahrwegExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FstrAneinanderExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FstrZugRangierExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* /** * Table transformation for a aneinandergereihte Fahrstraßen (Ssla). @@ -41,10 +39,8 @@ class SslaTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { val fstrAneinanderList = container.fstrAneinander - .filter [isPlanningObject] - .filterObjectsInControlArea(controlArea) // Basis_Objekt for (fstrAneinander : fstrAneinanderList) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend index d7179b6da1..532b2cbec9 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslb/SslbTransformator.xtend @@ -16,7 +16,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.TopologicalGraphService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.BasisTypen.ENUMWirkrichtung import org.eclipse.set.model.planpro.Block.Block_Element import org.eclipse.set.model.planpro.Block.ENUMBetriebsfuehrung @@ -62,16 +61,15 @@ class SslbTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { + MultiContainer_AttributeGroup container) { - val validObjects = container.blockElement.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filterNull + val validObjects = container.blockElement.filterNull val fmaLookupCache = getFMALookupCache(container) validObjects.flatMap[findRelevantBlockElements].filterNull.forEach [ it | if (Thread.currentThread.interrupted) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssld/SsldTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssld/SsldTransformator.xtend index e272992b09..3f25367636 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssld/SsldTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssld/SsldTransformator.xtend @@ -16,7 +16,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.TopologicalGraphService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_DWeg import org.eclipse.set.model.planpro.Geodaten.ENUMTOPAnschluss @@ -40,7 +39,6 @@ import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions import static extension org.eclipse.set.ppmodel.extensions.SignalExtensions.* import static extension org.eclipse.set.ppmodel.extensions.TopKanteExtensions.* import static extension org.eclipse.set.ppmodel.extensions.TopKnotenExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspElementExtensions.* import static extension org.eclipse.set.utils.math.BigDecimalExtensions.* @@ -111,11 +109,9 @@ class SsldTransformator extends AbstractPlanPro2TableModelTransformator { override transformTableContent( MultiContainer_AttributeGroup container, - TMFactory factory, - Stell_Bereich controlArea + TMFactory factory ) { - val fstDwegList = container.fstrDWeg.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea) + val fstDwegList = container.fstrDWeg // var footnoteNumber = 1; for (dweg : fstDwegList) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslf/SslfTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslf/SslfTransformator.xtend index 73c306b07b..41cd34f005 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslf/SslfTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslf/SslfTransformator.xtend @@ -11,7 +11,6 @@ package org.eclipse.set.feature.table.pt1.sslf import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt import org.eclipse.set.model.planpro.Flankenschutz.Fla_Schutz import org.eclipse.set.model.planpro.Nahbedienung.NB_Zone_Grenze @@ -27,7 +26,6 @@ import static org.eclipse.set.model.planpro.Flankenschutz.ENUMFahrtUeber.* import static extension org.eclipse.set.ppmodel.extensions.FlaFreimeldeZuordnungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FlaSchutzExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrAnlageExtensions.* /** @@ -44,11 +42,9 @@ class SslfTransformator extends AbstractPlanPro2TableModelTransformator { override transformTableContent( MultiContainer_AttributeGroup container, - TMFactory factory, - Stell_Bereich controlArea + TMFactory factory ) { - val flaSchutzList = container.flaSchutz.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filter[generalbedingung]. + val flaSchutzList = container.flaSchutz.filter[generalbedingung]. sortBy[wLageNbGrenze] for (flaSchutz : flaSchutzList) { diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssli/SsliTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssli/SsliTransformator.xtend index 7a417e1136..47d52f7d42 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssli/SsliTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssli/SsliTransformator.xtend @@ -18,7 +18,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.TopologicalGraphService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt import org.eclipse.set.model.planpro.Fahrstrasse.ENUMRangierGegenfahrtausschluss import org.eclipse.set.model.planpro.Gleis.Gleis_Bezeichnung @@ -59,17 +58,15 @@ class SsliTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory this.container = container - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - val gleisBezeichnung = container.gleisBezeichnung.filter [ - isPlanningObject - ].filterObjectsInControlArea(controlArea) + MultiContainer_AttributeGroup container) { + val gleisBezeichnung = container.gleisBezeichnung transformToBegrenzungen(gleisBezeichnung, container.signal.filter [ isPlanningObject ]).filter[generalbedingung].forEach [ it | diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssln/SslnTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssln/SslnTransformator.xtend index 4894a72149..ed14d5a758 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssln/SslnTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssln/SslnTransformator.xtend @@ -13,7 +13,6 @@ import java.util.Set import org.eclipse.set.basis.Pair import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt import org.eclipse.set.model.planpro.Nahbedienung.ENUMNBGrenzeArt import org.eclipse.set.model.planpro.Nahbedienung.NB_Zone @@ -41,7 +40,6 @@ import static extension org.eclipse.set.ppmodel.extensions.NbExtensions.* import static extension org.eclipse.set.ppmodel.extensions.NbZoneElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.NbZoneExtensions.* import static extension org.eclipse.set.ppmodel.extensions.NbZoneGrenzeExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspKomponenteExtensions.* /** @@ -59,15 +57,14 @@ class SslnTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - container.NBZone.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).forEach [ it | + MultiContainer_AttributeGroup container) { + container.NBZone.forEach [ it | if (Thread.currentThread.interrupted) { return } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslr/SslrTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslr/SslrTransformator.xtend index d50f11ccd7..94209bfacd 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslr/SslrTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslr/SslrTransformator.xtend @@ -13,7 +13,6 @@ import java.util.Collections import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_Zug_Rangier import org.eclipse.set.model.planpro.Weichen_und_Gleissperren.W_Kr_Gsp_Element import org.eclipse.set.model.tablemodel.ColumnDescriptor @@ -35,7 +34,6 @@ import static extension org.eclipse.set.ppmodel.extensions.FstrAbhaengigkeitExte import static extension org.eclipse.set.ppmodel.extensions.FstrRangierFlaZuordnungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FstrZugRangierExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* /** * Table transformation for a Rangierstraßentabelle (Sslr). @@ -52,15 +50,14 @@ class SslrTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - container.fstrZugRangier.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).filter[isR].forEach [ it | + MultiContainer_AttributeGroup container) { + container.fstrZugRangier.filter[isR].forEach [ it | if (Thread.currentThread.interrupted) { return } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssls/SslsTransformator.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssls/SslsTransformator.java index 5b7f39dc7b..7ee8ce42aa 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssls/SslsTransformator.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssls/SslsTransformator.java @@ -17,7 +17,6 @@ import org.eclipse.set.core.services.enumtranslation.EnumTranslationService; import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.planpro.Signale.Signal; import org.eclipse.set.model.tablemodel.ColumnDescriptor; import org.eclipse.set.model.tablemodel.Table; @@ -54,7 +53,7 @@ public SslsTransformator(final Set cols, @Override public Table transformTableContent( final MultiContainer_AttributeGroup container, - final TMFactory factory, final Stell_Bereich controlArea) { + final TMFactory factory) { final Set startSignals = getFstrZugStartSignal(container); signalingSections = new ArrayList<>(); startSignals.forEach(this::determineSignalingSections); diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslw/SslwTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslw/SslwTransformator.xtend index 46c16379c0..350086533e 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslw/SslwTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslw/SslwTransformator.xtend @@ -11,7 +11,6 @@ package org.eclipse.set.feature.table.pt1.sslw import java.util.Set import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Flankenschutz.Fla_Schutz import org.eclipse.set.model.planpro.Flankenschutz.Fla_Schutz_Weitergabe_AttributeGroup import org.eclipse.set.model.planpro.Flankenschutz.Fla_Zwieschutz @@ -33,7 +32,6 @@ import static org.eclipse.set.model.planpro.Weichen_und_Gleissperren.ENUMWKrArt. import static extension org.eclipse.set.ppmodel.extensions.FlaFreimeldeZuordnungExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FlaSchutzExtensions.* import static extension org.eclipse.set.ppmodel.extensions.FlaZwieschutzExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* /** * Table transformation for a Zwieschutzweichentabelle (SSLW). @@ -49,11 +47,9 @@ class SslwTransformator extends AbstractPlanPro2TableModelTransformator { override transformTableContent( MultiContainer_AttributeGroup container, - TMFactory factory, - Stell_Bereich controlArea + TMFactory factory ) { - val flaZwieSchutzList = container.flaZwieschutz. - filter[isPlanningObject].filterObjectsInControlArea(controlArea) + val flaZwieSchutzList = container.flaZwieschutz for (flaZwieSchutz : flaZwieSchutzList) { if (Thread.currentThread.interrupted) { return null diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslz/SslzTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslz/SslzTransformator.xtend index 38bcffc596..2d00537ab3 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslz/SslzTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sslz/SslzTransformator.xtend @@ -16,7 +16,6 @@ import org.eclipse.set.basis.MixedStringComparator import org.eclipse.set.basis.Wrapper import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt import org.eclipse.set.model.planpro.Fahrstrasse.ENUMFstrMittelArt import org.eclipse.set.model.planpro.Fahrstrasse.Fstr_Signalisierung @@ -63,7 +62,6 @@ import static extension org.eclipse.set.ppmodel.extensions.SchaltmittelZuordnung import static extension org.eclipse.set.ppmodel.extensions.SignalExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalRahmenExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalbegriffExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.Debug.* /** @@ -92,11 +90,8 @@ class SslzTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { - - for (fstrZugRangier : container.fstrZugRangier.filter [ - isPlanningObject && isZ - ].filterObjectsInControlArea(controlArea)) { + TMFactory factory) { + for (fstrZugRangier : container.fstrZugRangier.filter[isZ]) { if (Thread.currentThread.interrupted) { return null @@ -164,7 +159,8 @@ class SslzTransformator extends AbstractPlanPro2TableModelTransformator { ]) // G: Sslz.Grundsatzangaben.Art - fill(instance, + fill( + instance, cols.getColumn(Art), fstrZugRangier, [fstrZugArt] @@ -721,4 +717,4 @@ class SslzTransformator extends AbstractPlanPro2TableModelTransformator { return '''«signalBegriff.signalbegriffID?.symbol»« »«IF (signalBegriff.hasSignalbegriffID(typeof(Zs3)) || signalBegriff.hasSignalbegriffID(typeof(Zs3v))) && !signalBegriff.signalSignalbegriffAllg?.geschaltet?.wert»F«ENDIF»''' } -} \ No newline at end of file +} diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssvu/SsvuTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssvu/SsvuTransformator.xtend index 8369c736e2..ab3e0a2e38 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssvu/SsvuTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssvu/SsvuTransformator.xtend @@ -15,7 +15,6 @@ import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator import org.eclipse.set.model.planpro.Ansteuerung_Element.Aussenelementansteuerung import org.eclipse.set.model.planpro.Ansteuerung_Element.ESTW_Zentraleinheit -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Ansteuerung_Element.Uebertragungsweg import org.eclipse.set.model.planpro.Bahnuebergang.BUE_Schnittstelle import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt @@ -34,8 +33,6 @@ import org.osgi.service.event.EventAdmin import static org.eclipse.set.feature.table.pt1.ssvu.SsvuColumns.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* - /** * Table transformation for a Übertragungswegtabelle (Ssvu). * @@ -52,16 +49,15 @@ class SsvuTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory this.container = container - return container.transform(controlArea) + return container.transform } private def Table create factory.table transform( - MultiContainer_AttributeGroup container, Stell_Bereich controlArea) { - container.uebertragungsweg.filter[isPlanningObject]. - filterObjectsInControlArea(controlArea).forEach [ it | + MultiContainer_AttributeGroup container) { + container.uebertragungsweg.forEach [ it | if (Thread.currentThread.interrupted) { return } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssza/SszaTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssza/SszaTransformator.xtend index 58f40addfa..f120ff06e9 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssza/SszaTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssza/SszaTransformator.xtend @@ -54,7 +54,6 @@ import static extension org.eclipse.set.ppmodel.extensions.FmaAnlageExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektTopKanteExtensions.* import static extension org.eclipse.set.ppmodel.extensions.TopKanteExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.IterableExtensions.* import static extension org.eclipse.set.utils.math.BigDecimalExtensions.* @@ -72,7 +71,7 @@ class SszaTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory return container.transform } @@ -80,7 +79,7 @@ class SszaTransformator extends AbstractPlanPro2TableModelTransformator { private def Table create factory.table transform( MultiContainer_AttributeGroup container) { - container.datenpunkt.filter[isPlanningObject].forEach [ it | + container.datenpunkt.forEach [ it | if (Thread.currentThread.interrupted) { return } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszs/SszsTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszs/SszsTransformator.xtend index 466970aef8..02e52431f3 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszs/SszsTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszs/SszsTransformator.xtend @@ -4,7 +4,7 @@ * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v2.0 which is available at * https://www.eclipse.org/legal/epl-2.0. - * + * * SPDX-License-Identifier: EPL-2.0 * */ @@ -20,7 +20,6 @@ import org.eclipse.set.basis.graph.TopPoint import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.core.services.graph.TopologicalGraphService import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Balisentechnik_ETCS.ETCS_Signal import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt @@ -60,7 +59,6 @@ import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions import static extension org.eclipse.set.ppmodel.extensions.PunktObjektTopKanteExtensions.* import static extension org.eclipse.set.ppmodel.extensions.SignalExtensions.* import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.utils.math.BigDecimalExtensions.* import static extension org.eclipse.set.utils.math.DoubleExtensions.* @@ -80,8 +78,8 @@ class SszsTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { - for (etcsSignal : container.ETCSSignal.filter[isPlanningObject]) { + TMFactory factory) { + for (etcsSignal : container.ETCSSignal) { val refSignal = etcsSignal.IDSignal?.value val row = factory.newTableRow(etcsSignal) diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszw/SszwTransformator.xtend b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszw/SszwTransformator.xtend index cfd5edaba9..e269955b24 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszw/SszwTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sszw/SszwTransformator.xtend @@ -53,7 +53,6 @@ import static extension org.eclipse.set.ppmodel.extensions.ETCSWKrExtensions.* import static extension org.eclipse.set.ppmodel.extensions.PunktObjektTopKanteExtensions.* import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.* import static extension org.eclipse.set.ppmodel.extensions.TopKanteExtensions.* -import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrAnlageExtensions.* import static extension org.eclipse.set.ppmodel.extensions.WKrGspElementExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.IterableExtensions.* @@ -78,14 +77,14 @@ class SszwTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { + TMFactory factory) { this.factory = factory return container.transform } private def Table create factory.table transform( MultiContainer_AttributeGroup contanier) { - contanier.ETCSWKr.filter[isPlanningObject].forEach [ + contanier.ETCSWKr.forEach [ if (Thread.currentThread.interrupted) { return } diff --git a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java index 7ae4752a1c..1783f74595 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sxxx/SxxxTransformator.java @@ -20,7 +20,6 @@ import org.eclipse.set.feature.table.pt1.AbstractPlanPro2TableModelTransformator; import org.eclipse.set.model.planpro.Ansteuerung_Element.Aussenelementansteuerung; import org.eclipse.set.model.planpro.Ansteuerung_Element.ESTW_Zentraleinheit; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.planpro.BasisTypen.ID_Bearbeitungsvermerk_TypeClass; import org.eclipse.set.model.planpro.Basisobjekte.Bearbeitungsvermerk; import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt; @@ -66,7 +65,7 @@ public SxxxTransformator(final Set cols, @Override public Table transformTableContent( final MultiContainer_AttributeGroup container, - final TMFactory factory, final Stell_Bereich controlArea) { + final TMFactory factory) { final List idReferences = Streams .stream(container.getAllContents()) .parallel() diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java index bbe99216c0..1d8c16e7ca 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/ToolboxTableView.java @@ -934,7 +934,7 @@ private void subcribeTriggerResortEvent() { .size() && triggeredEvents .containsAll(triggerComparisonEvent)) { - tableService.sortTable(table, tableType, tableInfo); + tableService.sortTable(table, tableInfo); tableInstances.clear(); tableInstances.addAll( TableExtensions.getTableRows(table)); diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java index 1694633244..92a161e856 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java @@ -14,7 +14,6 @@ import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; @@ -26,6 +25,8 @@ import java.util.Queue; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.BiConsumer; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @@ -40,6 +41,7 @@ import org.eclipse.set.basis.IModelSession; import org.eclipse.set.basis.MissingSupplier; import org.eclipse.set.basis.cache.Cache; +import org.eclipse.set.basis.constants.ContainerType; import org.eclipse.set.basis.constants.Events; import org.eclipse.set.basis.constants.TableType; import org.eclipse.set.basis.constants.ToolboxConstants; @@ -56,17 +58,26 @@ import org.eclipse.set.feature.table.PlanPro2TableTransformationService; import org.eclipse.set.feature.table.messages.Messages; import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; +import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt; +import org.eclipse.set.model.tablemodel.CellContent; import org.eclipse.set.model.tablemodel.ColumnDescriptor; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.RowGroup; import org.eclipse.set.model.tablemodel.Table; +import org.eclipse.set.model.tablemodel.TableCell; import org.eclipse.set.model.tablemodel.TableRow; import org.eclipse.set.model.tablemodel.TablemodelFactory; +import org.eclipse.set.model.tablemodel.extensions.CellContentExtensions; import org.eclipse.set.model.tablemodel.extensions.FootnoteExtensions; import org.eclipse.set.model.tablemodel.extensions.FootnoteExtensions.WorkNotesUsage; import org.eclipse.set.model.tablemodel.extensions.TableCellExtensions; import org.eclipse.set.model.tablemodel.extensions.TableExtensions; import org.eclipse.set.model.tablemodel.extensions.TableRowExtensions; -import org.eclipse.set.ppmodel.extensions.ContainerExtensions; +import org.eclipse.set.ppmodel.extensions.EObjectExtensions; +import org.eclipse.set.ppmodel.extensions.MultiContainer_AttributeGroupExtensions; +import org.eclipse.set.ppmodel.extensions.PlanProSchnittstelleExtensions; +import org.eclipse.set.ppmodel.extensions.StellBereichExtensions; +import org.eclipse.set.ppmodel.extensions.UrObjectExtensions; import org.eclipse.set.ppmodel.extensions.container.MultiContainer_AttributeGroup; import org.eclipse.set.ppmodel.extensions.utils.TableNameInfo; import org.eclipse.set.services.table.TableDiffService; @@ -187,15 +198,19 @@ void cleanWorkNotesProTable() { workNotesPerTable.clear(); } - private Table createDiffTable(final TableInfo tableInfo, - final IModelSession modelSession, final String controlAreaId) { + private Table createDiffStateTable(final TableInfo tableInfo, + final IModelSession modelSession) { + final PlanPro2TableTransformationService modelService = getModelService( + tableInfo); - final Table startTable = transformToTable(tableInfo, TableType.INITIAL, - modelSession, controlAreaId == null ? Collections.emptySet() - : Set.of(controlAreaId)); - final Table zielTable = transformToTable(tableInfo, TableType.FINAL, - modelSession, controlAreaId == null ? Collections.emptySet() - : Set.of(controlAreaId)); + final Table startTable = modelService + .transform(PlanProSchnittstelleExtensions.getContainer( + modelSession.getPlanProSchnittstelle(), + ContainerType.INITIAL)); + final Table zielTable = modelService + .transform(PlanProSchnittstelleExtensions.getContainer( + modelSession.getPlanProSchnittstelle(), + ContainerType.FINAL)); if (zielTable == null || startTable == null) { return null; } @@ -215,20 +230,6 @@ public String extractShortcut(final String elementId) { return parts[parts.length - 1]; } - private String getContainerCacheId(final IModelSession modelSession, - final TableType tableType) { - // For table diffs, combine initial and final cache ids - if (tableType == TableType.DIFF) { - return getContainerCacheId(modelSession, TableType.INITIAL) + "#" //$NON-NLS-1$ - + getContainerCacheId(modelSession, TableType.FINAL); - } - - // For other tables, use the container's cache id - return tableType.toString() + "$" //$NON-NLS-1$ - + ContainerExtensions.getCacheId(modelSession - .getContainer(tableType.getContainerForTable())); - } - @Override public TableInfo getTableInfo(final BasePart part) { final String shortcut = extractShortcut( @@ -336,73 +337,60 @@ private void combineTableErrors(final IModelSession modelSession, } private void saveTableError(final TableInfo tableInfo, - final IModelSession modelSession, final TableType tableType, - final Collection errors, final String cacheKey) { + final IModelSession modelSession, + final Collection errors) { final String shortName = getTableNameInfo(tableInfo).getShortName(); + final String shortCut = tableInfo.shortcut(); + errors.forEach(error -> error.setSource(shortName)); + if (modelSession.getTableType() == TableType.SINGLE) { + getCacheService() + .getCache(modelSession.getPlanProSchnittstelle(), + ToolboxConstants.CacheId.TABLE_ERRORS_SINGLE) + .set(shortCut, errors); + broker.post(Events.TABLEERROR_CHANGED, null); + return; + } + + final Collection initialErros = new ArrayList<>(); + final Collection finalErrors = new ArrayList<>(); errors.forEach(error -> { - error.setSource(shortName); - error.setTableType(tableType); + switch (error.getTableType()) { + case INITIAL: + initialErros.add(error); + break; + case FINAL: + finalErrors.add(error); + break; + default: + return; + } }); - switch (tableType) { - case INITIAL: - getCacheService() - .getCache(modelSession.getPlanProSchnittstelle(), - ToolboxConstants.CacheId.TABLE_ERRORS_INITIAL) - .set(cacheKey, errors); - break; - case FINAL: - getCacheService() - .getCache(modelSession.getPlanProSchnittstelle(), - ToolboxConstants.CacheId.TABLE_ERRORS_FINAL) - .set(cacheKey, errors); - break; - case SINGLE: - getCacheService() - .getCache(modelSession.getPlanProSchnittstelle(), - ToolboxConstants.CacheId.TABLE_ERRORS_SINGLE) - .set(cacheKey, errors); - // The plan with single state don't need combine cache errrors - broker.post(Events.TABLEERROR_CHANGED, null); - return; - default: - return; - } - combineTableErrors(modelSession, cacheKey); + getCacheService() + .getCache(modelSession.getPlanProSchnittstelle(), + ToolboxConstants.CacheId.TABLE_ERRORS_INITIAL) + .set(shortCut, initialErros); + getCacheService() + .getCache(modelSession.getPlanProSchnittstelle(), + ToolboxConstants.CacheId.TABLE_ERRORS_INITIAL) + .set(shortCut, finalErrors); + combineTableErrors(modelSession, shortCut); } private Object loadTransform(final TableInfo tableInfo, - final TableType tableType, final IModelSession modelSession, - final String controlAreaId) { + final IModelSession modelSession) { final PlanPro2TableTransformationService modelService = getModelService( tableInfo); Table transformedTable = null; - if (tableType == TableType.DIFF) { - transformedTable = createDiffTable(tableInfo, modelSession, - controlAreaId); - modelService.format(transformedTable); - } else { - final MultiContainer_AttributeGroup container = modelSession - .getContainer(tableType.getContainerForTable()); - final Stell_Bereich area = getStellBereich(container, - controlAreaId); - if (controlAreaId == null - || isContainerContainArea(container, controlAreaId)) { - transformedTable = modelService.transform(container, area); - } else { - // Create empty table - transformedTable = TablemodelFactory.eINSTANCE.createTable(); - transformedTable.setTablecontent( - TablemodelFactory.eINSTANCE.createTableContent()); - modelService.buildHeading(transformedTable); - } - } + transformedTable = createDiffStateTable(tableInfo, modelSession); + modelService.format(transformedTable); if (Thread.currentThread().isInterrupted() || transformedTable == null) { return MissingSupplier.MISSING_VALUE; } // sorting - sortTable(transformedTable, tableType, tableInfo); + sortTable(transformedTable, tableInfo); + saveTableToCache(transformedTable, modelSession, tableInfo); return transformedTable; } @@ -499,41 +487,223 @@ private List> getCacheKeys(final String shortCut, public Table transformToTable(final TableInfo tableInfo, final TableType tableType, final IModelSession modelSession, final Set controlAreaIds) { - final String containerId = getContainerCacheId(modelSession, tableType); final Cache cache = getCacheService().getCache( modelSession.getPlanProSchnittstelle(), - ToolboxConstants.SHORTCUT_TO_TABLE_CACHE_ID, containerId); - - Table resultTable = null; - - final List> cacheKeys = getCacheKeys( - tableInfo.shortcut(), modelSession, controlAreaIds); - for (final Pair cacheKey : cacheKeys) { - final String areaId = cacheKey.getKey(); - final String areaCacheKey = cacheKey.getValue(); - Table table = (Table) cache.getIfPresent(areaCacheKey); - - if (table == null) { - table = (Table) loadTransform(tableInfo, tableType, - modelSession, areaId); - saveTableToCache(table, modelSession, containerId, tableInfo, - tableType, areaCacheKey); - } - if (resultTable == null) { - resultTable = EcoreUtil.copy(table); - } else { - for (final RowGroup rowGroup : table.getTablecontent() - .getRowgroups()) { - TableExtensions.addRowGroup(resultTable, rowGroup); - } - } + ToolboxConstants.SHORTCUT_TO_TABLE_CACHE_ID); + final Table table = cache.get(tableInfo.shortcut(), + () -> (Table) loadTransform(tableInfo, modelSession)); + if (tableType != TableType.DIFF && !controlAreaIds.isEmpty() + && controlAreaIds.stream() + .noneMatch(area -> isContainerContainArea( + modelSession.getContainer( + tableType.getContainerForTable()), + area))) { + // Create empty table + final Table emptyTable = TablemodelFactory.eINSTANCE.createTable(); + emptyTable.setTablecontent( + TablemodelFactory.eINSTANCE.createTableContent()); + getModelService(tableInfo).buildHeading(emptyTable); + return emptyTable; } - // sorting - if (resultTable != null && resultTable.getTablecontent() != null) { - sortTable(resultTable, tableType, tableInfo); - } + final Table resultTable = filterRequestValue(EcoreUtil.copy(table), + tableInfo, tableType, modelSession, controlAreaIds); + clearEmptyRow(resultTable); + sortTable(resultTable, tableInfo); return resultTable; + + } + + private static Table filterRequestValue(final Table table, + final TableInfo tableInfo, final TableType tableType, + final IModelSession modelsession, + final Set controlAreaIds) { + final Table result = filterTableByState(table, tableType); + if (tableInfo.category() == Pt1TableCategory.ETCS) { + return result; + } + if (tableType == TableType.DIFF) { + filterRowGroupBelongToControlAreaByDiffState(result, modelsession, + controlAreaIds); + result.getTablecontent() + .getRowgroups() + .removeIf(group -> !UrObjectExtensions + .isPlanningObject(group.getLeadingObject())); + return result; + } + + result.getTablecontent().getRowgroups().removeIf(group -> { + final Pair initalFinalObj = getInitalFinalObj( + group.getLeadingObject(), modelsession); + final Ur_Objekt leadingObj = tableType == TableType.FINAL + ? initalFinalObj.getValue() + : initalFinalObj.getKey(); + final MultiContainer_AttributeGroup container = modelsession + .getContainer(tableType.getContainerForTable()); + final List areas = controlAreaIds.stream() + .map(areaId -> getStellBereich(container, areaId)) + .toList(); + return !UrObjectExtensions.isPlanningObject(leadingObj) + || !areas.isEmpty() && areas.stream() + .noneMatch(area -> StellBereichExtensions + .isInControlArea(area, leadingObj)); + + }); + return result; + } + + private static Table filterTableByState(final Table table, + final TableType tableType) { + if (tableType == TableType.DIFF || tableType == TableType.SINGLE) { + return table; + } + + final List compareStateRows = TableExtensions + .getTableRows(table) + .stream() + .filter(row -> row.getCells() + .stream() + .map(TableCell::getContent) + .anyMatch(CompareStateCellContent.class::isInstance)) + .toList(); + if (compareStateRows.isEmpty()) { + return table; + } + compareStateRows.forEach(row -> row.getCells() + .stream() + .filter(cell -> cell + .getContent() instanceof CompareStateCellContent) + .forEach(cell -> { + final CompareStateCellContent compareCellContent = (CompareStateCellContent) cell + .getContent(); + if (tableType == TableType.INITIAL) { + cell.setContent(compareCellContent.getOldValue()); + } else if (tableType == TableType.FINAL) { + cell.setContent(compareCellContent.getNewValue()); + } + })); + return table; + } + + private static void filterRowGroupBelongToControlAreaByDiffState( + final Table result, final IModelSession modelsession, + final Set controlAreaIds) { + if (controlAreaIds.isEmpty()) { + return; + } + final List initalControlAreas = controlAreaIds.stream() + .map(areaId -> getStellBereich( + modelsession.getContainer(ContainerType.INITIAL), + areaId)) + .filter(Objects::nonNull) + .toList(); + final List finalControlAreas = controlAreaIds.stream() + .map(areaId -> getStellBereich( + modelsession.getContainer(ContainerType.FINAL), areaId)) + .filter(Objects::nonNull) + .toList(); + result.getTablecontent().getRowgroups().forEach(group -> { + final Pair initalFinalObj = getInitalFinalObj( + group.getLeadingObject(), modelsession); + final Ur_Objekt initalObj = initalFinalObj.getKey(); + final Ur_Objekt finalObj = initalFinalObj.getValue(); + + final boolean isFinalObjBelongToAreas = finalObj != null + && finalControlAreas.stream() + .anyMatch(area -> StellBereichExtensions + .isInControlArea(area, finalObj)); + final boolean isInitialObjBelongToAreas = initalObj != null + && initalControlAreas.stream() + .anyMatch(area -> StellBereichExtensions + .isInControlArea(area, initalObj)); + if (isFinalObjBelongToAreas && isInitialObjBelongToAreas) { + return; + } + + if (!isFinalObjBelongToAreas && !isInitialObjBelongToAreas) { + group.getRows().clear(); + } + + if (isFinalObjBelongToAreas) { + group.getRows() + .forEach(row -> handleTableRowNotBelongToArea() + .accept(row, TableType.INITIAL)); + } + + if (isInitialObjBelongToAreas) { + group.getRows() + .forEach(row -> handleTableRowNotBelongToArea() + .accept(row, TableType.FINAL)); + } + }); + } + + private static Pair getInitalFinalObj( + final Ur_Objekt leadingObj, final IModelSession modelSession) { + final Function getObjInContainer = containerType -> { + final ContainerType currentType = UrObjectExtensions + .getContainerType(leadingObj); + final MultiContainer_AttributeGroup targetContainer = modelSession + .getContainer(containerType); + return currentType == containerType ? leadingObj + : MultiContainer_AttributeGroupExtensions.getObject( + targetContainer, leadingObj.getClass(), + leadingObj.getIdentitaet().getWert()); + }; + return new Pair<>(getObjInContainer.apply(ContainerType.INITIAL), + getObjInContainer.apply(ContainerType.FINAL)); + } + + private static BiConsumer handleTableRowNotBelongToArea() { + return (final TableRow row, final TableType missingObjTableType) -> row + .getCells() + .forEach(cell -> { + if (cell.getContent() instanceof final CompareStateCellContent compareCellContent) { + if (missingObjTableType == TableType.INITIAL) { + compareCellContent.setOldValue(null); + } else { + compareCellContent.setNewValue(null); + } + return; + } + final CompareStateCellContent compareContent = TablemodelFactory.eINSTANCE + .createCompareStateCellContent(); + switch (missingObjTableType) { + case INITIAL: { + compareContent.setNewValue(cell.getContent()); + break; + } + case FINAL: + compareContent.setOldValue(cell.getContent()); + break; + default: + throw new IllegalArgumentException(); + } + final Optional separator = EObjectExtensions + .getNullableObject(cell.getContent(), + CellContent::getSeparator); + if (separator.isPresent()) { + compareContent.setSeparator(separator.get()); + } + cell.setContent(compareContent); + }); + } + + private static void clearEmptyRow(final Table table) { + table.getTablecontent() + .getRowgroups() + .forEach(group -> group.getRows() + .removeIf(row -> row.getCells().isEmpty() || row + .getCells() + .stream() + .allMatch(cell -> cell.getContent() == null + || CellContentExtensions + .getPlainStringValue( + cell.getContent()) + .isEmpty()))); + table.getTablecontent() + .getRowgroups() + .removeIf(group -> group.getRows().isEmpty()); } private void storageWorknotes(final TableInfo tableInfo, @@ -583,11 +753,9 @@ private void storageWorknotes(final TableInfo tableInfo, } private void saveTableToCache(final Table table, - final IModelSession modelSession, final String containerId, - final TableInfo tableInfo, final TableType tableType, - final String areaCacheKey) { - final String threadName = String.format("%s/saveCache/%s", //$NON-NLS-1$ - tableInfo.shortcut(), areaCacheKey); + final IModelSession modelSession, final TableInfo tableInfo) { + final String threadName = String.format("%s/saveCache", //$NON-NLS-1$ + tableInfo.shortcut()); final PlanPro2TableTransformationService modelService = getModelService( tableInfo); // It will create a separate transformation for each table state, which @@ -597,13 +765,11 @@ private void saveTableToCache(final Table table, final Runnable storageFunc = () -> { final Cache cache = getCacheService().getCache( modelSession.getPlanProSchnittstelle(), - ToolboxConstants.SHORTCUT_TO_TABLE_CACHE_ID, - containerId); + ToolboxConstants.SHORTCUT_TO_TABLE_CACHE_ID); if (table != null) { - cache.set(areaCacheKey, table); + cache.set(tableInfo.shortcut(), table); } - saveTableError(tableInfo, modelSession, tableType, errors, - areaCacheKey); + saveTableError(tableInfo, modelSession, errors); }; if (TableService.isTransformComplete(tableInfo, @@ -783,7 +949,7 @@ public Table createDiffTable(final TableInfo tableInfo, final Table compareTable = diffServiceMap .get(TableCompareType.PROJECT) .createDiffTable(mainSessionTable, compareSessionTable); - sortTable(compareTable, TableType.DIFF, tableInfo); + sortTable(compareTable, tableInfo); storageWorknotes(tableInfo, compareSessionTable); return compareTable; } catch (final Exception e) { @@ -796,8 +962,7 @@ public Table createDiffTable(final TableInfo tableInfo, } @Override - public void sortTable(final Table table, final TableType tableType, - final TableInfo tableInfo) { + public void sortTable(final Table table, final TableInfo tableInfo) { final Comparator comparator = getModelService(tableInfo) .getRowGroupComparator(); ECollections.sort(table.getTablecontent().getRowgroups(), comparator); diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/overview/TableErrorTableTransformator.xtend b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/overview/TableErrorTableTransformator.xtend index 6c31dabe03..3121972723 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/overview/TableErrorTableTransformator.xtend +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/overview/TableErrorTableTransformator.xtend @@ -9,12 +9,11 @@ package org.eclipse.set.feature.table.overview import java.util.Collection -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich +import java.util.Comparator +import org.eclipse.set.core.services.enumtranslation.EnumTranslationService import org.eclipse.set.utils.table.AbstractTableModelTransformator import org.eclipse.set.utils.table.TMFactory import org.eclipse.set.utils.table.TableError -import org.eclipse.set.core.services.enumtranslation.EnumTranslationService -import java.util.Comparator class TableErrorTableTransformator extends AbstractTableModelTransformator> { TableErrorTableColumns columns; @@ -40,15 +39,10 @@ class TableErrorTableTransformator extends AbstractTableModelTransformator errors, - TMFactory factory, Stell_Bereich controlArea) { - transformTableContent(errors, factory) - } } diff --git a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/BedienBezirkExtensions.xtend b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/BedienBezirkExtensions.xtend index 2061efaf85..ef06b576ab 100644 --- a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/BedienBezirkExtensions.xtend +++ b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/BedienBezirkExtensions.xtend @@ -13,6 +13,7 @@ import org.eclipse.set.model.planpro.Bedienung.Bedien_Bezirk import org.eclipse.set.model.planpro.Bedienung.Bedien_Zentrale import static extension org.eclipse.set.ppmodel.extensions.ESTW_ZentraleinheitExtensions.* +import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.* /** * Extensions for {@link Bedien_Bezirk}. @@ -34,6 +35,6 @@ class BedienBezirkExtensions extends BasisObjektExtensions { return bedienBezirk.container.ESTWZentraleinheit.filterNull.filter [ bedienBezirkVirtuell === bedienBezirk || bedienBezirkZentral === bedienBezirk - ].exists[StellBereichExtensions.isInControlArea(controlArea, it)] + ].exists[isInControlArea(controlArea, it)] } } diff --git a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/MultiContainer_AttributeGroupExtensions.xtend b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/MultiContainer_AttributeGroupExtensions.xtend index 6d5edd300f..9a5419d002 100644 --- a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/MultiContainer_AttributeGroupExtensions.xtend +++ b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/MultiContainer_AttributeGroupExtensions.xtend @@ -81,7 +81,7 @@ class MultiContainer_AttributeGroupExtensions { throw new IllegalArgumentException('''PlanProSchinttStelle not contains LST_Zustand: «lstZustand.identitaet.wert»''') } - + def static PlanPro_Schnittstelle getPlanProSchnittstelle( MultiContainer_AttributeGroup container) { val lstZustand = container.firstLSTZustand diff --git a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SchlossExtensions.xtend b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SchlossExtensions.xtend index 7f1894a4f2..08902b9e97 100644 --- a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SchlossExtensions.xtend +++ b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/SchlossExtensions.xtend @@ -14,6 +14,11 @@ import org.eclipse.set.model.planpro.Schluesselabhaengigkeiten.Schlosskombinatio import org.eclipse.set.model.planpro.Schluesselabhaengigkeiten.Schluessel import org.eclipse.set.model.planpro.Schluesselabhaengigkeiten.Schluesselsperre import org.eclipse.set.model.planpro.Weichen_und_Gleissperren.W_Kr_Gsp_Element +import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich + +import static extension org.eclipse.set.ppmodel.extensions.SchluesselExtensions.* +import static extension org.eclipse.set.ppmodel.extensions.SchlosskombinationExtensions.* +import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.* /** * Extensions for {@link Schloss}. @@ -82,4 +87,44 @@ class SchlossExtensions extends BasisObjektExtensions { def static W_Kr_Gsp_Element getSonderanlage(Schloss schloss) { return schloss?.schlossSonderanlage?.IDSonderanlage?.value } + + def static Iterable filterObjectsIsBelongToControlArea(Iterable schlosses, Stell_Bereich controlArea) { + if (controlArea === null || schlosses.nullOrEmpty) { + return schlosses; + } + + val result = newHashSet + val container = schlosses?.head?.container + // 1. Condition + // IMPROVE: Not completely, because the requirements for this case aren't clear + val stellelements = container.stellelement.map[IDInformation?.value]. + filterNull.filter[AussenelementansteuerungExtensions.isBelongToControlArea(it, controlArea)] + val ssp = container.schluesselsperre.filter [ ssp | + stellelements.exists[it === ssp.IDStellelement.value] + ] + val schluessels = schlosses.filter [ schloss | + ssp.exists[it === schloss.schlossSsp.IDSchluesselsperre.value] + ].map[schluesel].filterNull + result.addAll(schluessels.flatMap[schloesser]) + + // 2.Condition + result.filter[schlossSk?.hauptschloss.wert].flatMap [ schloss | + schloss.schlossSk.IDSchlosskombination?.value.schloesser.filter [ + it.schlossSk !== null && !it.schlossSk.hauptschloss.wert + ] + ].filterNull.map[schluesel].flatMap[schloesser].forEach[result.add(it)] + + // 3. Condition + schlosses.filter [ schloss | + controlArea.wkrGspElement.exists [ gspElement | + schloss.schlossW?.IDWKrElement?.value === gspElement || + schloss.schlossGsp?.IDGspElement?.value === gspElement || + schloss.schlossSonderanlage?.IDSonderanlage?.value == + gspElement + ] + ].map[schluesel].flatMap[schloesser].toSet.filter [ + technischBerechtigter?.wert + ].forEach[result.add(it)] + return result + } } diff --git a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/UrObjectExtensions.xtend b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/UrObjectExtensions.xtend index f6e69332cf..636157e1b3 100644 --- a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/UrObjectExtensions.xtend +++ b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/UrObjectExtensions.xtend @@ -10,6 +10,7 @@ package org.eclipse.set.ppmodel.extensions import org.eclipse.emf.ecore.EObject import org.eclipse.set.basis.cache.Cache +import org.eclipse.set.basis.constants.ContainerType import org.eclipse.set.core.services.Services import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt @@ -17,6 +18,7 @@ import org.eclipse.set.model.planpro.PlanPro.LST_Zustand import org.eclipse.set.model.planpro.PlanPro.PlanPro_Schnittstelle import org.eclipse.set.utils.ToolboxConfiguration +import static extension org.eclipse.set.ppmodel.extensions.MultiContainer_AttributeGroupExtensions.* import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.* /** @@ -35,15 +37,17 @@ class UrObjectExtensions extends BasisAttributExtensions { } def static Cache getCache(Ur_Objekt object, String cacheKey) { - val service = ToolboxConfiguration.isDevelopmentMode ? Services. - noCacheService : Services.cacheService + val service = ToolboxConfiguration.isDevelopmentMode + ? Services.noCacheService + : Services.cacheService return service.getCache(object.planProSchnittstelle, cacheKey) } def static Cache getCache(Ur_Objekt object, String containerIdCacheId, String cacheKey) { - val service = ToolboxConfiguration.isDevelopmentMode ? Services. - noCacheService : Services.cacheService + val service = ToolboxConfiguration.isDevelopmentMode + ? Services.noCacheService + : Services.cacheService return service.getCache(object.planProSchnittstelle, cacheKey, containerIdCacheId) } @@ -104,4 +108,8 @@ class UrObjectExtensions extends BasisAttributExtensions { return objects.filter[area.isInControlArea(it)] } + + def static ContainerType getContainerType(Ur_Objekt obj) { + return obj.container.containerType + } } diff --git a/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java b/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java index 741b42163e..fc8d2845bb 100644 --- a/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java +++ b/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableService.java @@ -206,12 +206,10 @@ Table createDiffTable(TableInfo tableInfo, TableType tableType, * * @param table * the table - * @param tableType - * the {@link TableType} * @param tableInfo * the {@link TableInfo} */ - void sortTable(Table table, TableType tableType, TableInfo tableInfo); + void sortTable(Table table, TableInfo tableInfo); /** * @param tableInfo diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableModelTransformator.xtend b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableModelTransformator.xtend index b8e8a936e5..1f1ea64bb5 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableModelTransformator.xtend +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableModelTransformator.xtend @@ -24,6 +24,8 @@ import org.slf4j.LoggerFactory import static extension com.google.common.base.Throwables.* import static extension org.eclipse.set.model.tablemodel.extensions.TableRowExtensions.* +import static extension org.eclipse.set.ppmodel.extensions.BasisAttributExtensions.* +import static extension org.eclipse.set.ppmodel.extensions.MultiContainer_AttributeGroupExtensions.* import static extension org.eclipse.set.ppmodel.extensions.utils.Debug.* /** @@ -223,10 +225,9 @@ abstract class AbstractTableModelTransformator implements TableModelTransform fill(row, column, object, [content.get(0)]) } else { fillIterable(row, column, object, [content], - switchCase.comparator, [it], - switchCase.seperator === - null ? ITERABLE_FILLING_SEPARATOR : switchCase. - seperator) + switchCase.comparator, [it], switchCase.seperator === null + ? ITERABLE_FILLING_SEPARATOR + : switchCase.seperator) } } catch (Exception e) { handleFillingException(e, row, column) @@ -473,8 +474,6 @@ abstract class AbstractTableModelTransformator implements TableModelTransform } } - - def static String fillRegelzeichnung(Regelzeichnung regelzeichnung) { val bild = regelzeichnung?.regelzeichnungAllg?.bild var rzNummer = regelzeichnung?.regelzeichnungAllg?.RZNummer?.wert @@ -548,14 +547,19 @@ abstract class AbstractTableModelTransformator implements TableModelTransform TableRow row, ColumnDescriptor column ) { - var guid = row.group.leadingObject?.identitaet?.wert - var leadingObject = getLeadingObjectIdentifier(row, guid) + var leadingObject = row.group.leadingObject + var errorIdentiefer = getLeadingObjectIdentifier(row, + leadingObject?.identitaet?.wert) var errorMsg = e.createErrorMsg(row) - - tableErrors.add(new TableError(guid, leadingObject, "", errorMsg, row)) + val container = row.group.leadingObject.container + val tableType = container.containerType.defaultTableType + val error = new TableError(leadingObject, errorIdentiefer, "", errorMsg, + row) + error.tableType = tableType + tableErrors.add(error) row.set(column, '''«ERROR_PREFIX»«errorMsg»''') logger. - error('''«e.class.simpleName» in column "«column.debugString»" for leading object "«leadingObject»" («guid»). «e.message»«System.lineSeparator»«e.stackTraceAsString»''') + error('''«e.class.simpleName» in column "«column.debugString»" for leading object "«leadingObject»" («leadingObject?.identitaet?.wert»). «e.message»«System.lineSeparator»«e.stackTraceAsString»''') } def String createErrorMsg( diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableTransformationService.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableTransformationService.java index 4d0647350b..d6ae010b4e 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableTransformationService.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/AbstractTableTransformationService.java @@ -18,7 +18,6 @@ import java.util.Comparator; import java.util.List; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.tablemodel.ColumnDescriptor; import org.eclipse.set.model.tablemodel.RowGroup; import org.eclipse.set.model.tablemodel.Table; @@ -93,13 +92,11 @@ public Comparator getRowGroupComparator() { } @Override - public Table transform(final T model, final Stell_Bereich controlArea) { + public Table transform(final T model) { final Table table = TablemodelFactory.eINSTANCE.createTable(); buildHeading(table); transformator = createTransformator(); - transformator.transformTableContent(model, new TMFactory(table), - controlArea); - // Fill blank value to cell + transformator.transformTableContent(model, new TMFactory(table)); TableExtensions.getTableRows(table).forEach(row -> { for (int i = 0; i < row.getCells().size(); i++) { if (row.getCells().get(i).getContent() == null) { @@ -111,16 +108,6 @@ public Table transform(final T model, final Stell_Bereich controlArea) { return table; } - @Override - public Table transform(final T model) { - final Table table = TablemodelFactory.eINSTANCE.createTable(); - buildHeading(table); - transformator = createTransformator(); - transformator.transformTableContent(model, new TMFactory(table)); - setColumnTextAlignment(table); - return table; - } - @Override public Collection getTableErrors() { if (transformator != null) { diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableError.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableError.java index 878d571ff3..0bb3fe8d00 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableError.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableError.java @@ -9,9 +9,11 @@ package org.eclipse.set.utils.table; import org.eclipse.set.basis.constants.TableType; +import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt; import org.eclipse.set.model.planpro.Basisobjekte.impl.Ur_ObjektImpl; import org.eclipse.set.model.tablemodel.TableRow; import org.eclipse.set.model.tablemodel.extensions.TableRowExtensions; +import org.eclipse.set.ppmodel.extensions.EObjectExtensions; /** * Errors that occurred during table transformation @@ -20,17 +22,17 @@ * */ public class TableError extends Ur_ObjektImpl { - private final String guid; - private final String leadingObject; + private final Ur_Objekt leadingObject; + private final String errorIdentifier; private String source; private TableType tableType; private final String message; private final TableRow row; /** - * @param guid - * the guid of the affected leading object * @param leadingObject + * the guid of the affected leading object + * @param errorIdentifier * the affected leading object * @param source * the source table @@ -39,10 +41,11 @@ public class TableError extends Ur_ObjektImpl { * @param row * the row where the error occurred */ - public TableError(final String guid, final String leadingObject, - final String source, final String message, final TableRow row) { - this.guid = guid; + public TableError(final Ur_Objekt leadingObject, + final String errorIdentifier, final String source, + final String message, final TableRow row) { this.leadingObject = leadingObject; + this.errorIdentifier = errorIdentifier; this.source = source; this.message = message; this.row = row; @@ -52,13 +55,23 @@ public TableError(final String guid, final String leadingObject, * @return the guid of the affected leading object */ public String getGuid() { - return guid; + return EObjectExtensions + .getNullableObject(leadingObject, + obj -> obj.getIdentitaet().getWert()) + .orElse(""); //$NON-NLS-1$ + } + + /** + * @return the error identifier string + */ + public String getErrorIdentifier() { + return errorIdentifier; } /** - * @return the affected leading object + * @return the leading object */ - public String getLeadingObject() { + public Ur_Objekt getLeadingObject() { return leadingObject; } diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelTransformator.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelTransformator.java index 8df5b457f8..49731d78eb 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelTransformator.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelTransformator.java @@ -10,7 +10,6 @@ import java.util.Collection; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.tablemodel.Table; /** @@ -34,21 +33,6 @@ public interface TableModelTransformator { */ public Table transformTableContent(T model, TMFactory factory); - /** - * Transforms the given container and control area of a PlanPro model to a - * particular table of the table model. - * - * @param model - * the model - * @param factory - * factory to create new rows of the table model - * @param controlArea - * the {@link Stell_Bereich} - * @return the table model - */ - public Table transformTableContent(T model, TMFactory factory, - Stell_Bereich controlArea); - /** * Errors that occurred during transformation * diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableTransformationService.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableTransformationService.java index 45287513bf..810cf2937c 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableTransformationService.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableTransformationService.java @@ -11,7 +11,6 @@ import java.util.Collection; import java.util.Comparator; -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich; import org.eclipse.set.model.tablemodel.RowGroup; import org.eclipse.set.model.tablemodel.Table; @@ -48,17 +47,6 @@ public interface TableTransformationService { */ Table transform(T model); - /** - * Transforms a model within control area to a table model. - * - * @param model - * the model to be used - * @param controlArea - * the {@link Stell_Bereich} - * @return the transformed table - */ - Table transform(T model, Stell_Bereich controlArea); - /** * Errors that occurred during transformation * diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/tree/AbstractValidationProblemTransformator.xtend b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/tree/AbstractValidationProblemTransformator.xtend index 4438e3657b..971ac1b40e 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/tree/AbstractValidationProblemTransformator.xtend +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/tree/AbstractValidationProblemTransformator.xtend @@ -11,7 +11,6 @@ package org.eclipse.set.utils.table.tree import java.util.Comparator import java.util.List import java.util.Set -import org.eclipse.set.model.planpro.Ansteuerung_Element.Stell_Bereich import org.eclipse.set.model.tablemodel.ColumnDescriptor import org.eclipse.set.model.tablemodel.TableRow import org.eclipse.set.model.validationreport.ValidationProblem @@ -40,10 +39,6 @@ abstract class AbstractValidationProblemTransformator extends AbstractTableMo return factory.table } - override transformTableContent(T model, TMFactory factory, Stell_Bereich controlArea) { - throw new UnsupportedOperationException() - } - abstract def List getProblems(T report) protected def void transformProblem(TMFactory factory,