Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<MultiContainer_AttributeGroup> {
protected val FootnoteTransformation footnoteTransformation = new FootnoteTransformation()
Expand Down Expand Up @@ -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 <S, T extends Ur_Objekt> void fillSingleCellWhenAllowed(
TableRow row,
ColumnDescriptor column,
Expand Down Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.*

Expand All @@ -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 {

Expand All @@ -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 [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.*

Expand All @@ -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).
Expand All @@ -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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.*

/**
Expand All @@ -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
Expand All @@ -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
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.*

Expand All @@ -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<FMA_Anlage> fmaAnlageList = container.FMAAnlage.filter [
isPlanningObject
].filterObjectsInControlArea(controlArea)
val Iterable<FMA_Anlage> fmaAnlageList = container.FMAAnlage

for (fmaAnlage : fmaAnlageList) {
if (Thread.currentThread.interrupted) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.*

/**
Expand All @@ -55,12 +53,10 @@ class SskgTransformator extends AbstractPlanPro2TableModelTransformator {
}

override transformTableContent(MultiContainer_AttributeGroup container,
TMFactory factory, Stell_Bereich controlArea) {
TMFactory factory) {
val instances = new ArrayList<TableRow>

for (Zugeinwirkung ein : container.zugeinwirkung.filter [
isPlanningObject
].filterObjectsInControlArea(controlArea)) {
for (Zugeinwirkung ein : container.zugeinwirkung) {
if (Thread.currentThread.interrupted) {
return null
}
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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).
Expand All @@ -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
}
Expand Down Expand Up @@ -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<Schloss> 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
}
}
Loading
Loading