diff --git a/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/cacheservice/CacheServiceImpl.java b/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/cacheservice/CacheServiceImpl.java index 9e7339505c..024b161045 100644 --- a/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/cacheservice/CacheServiceImpl.java +++ b/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/cacheservice/CacheServiceImpl.java @@ -8,9 +8,11 @@ */ package org.eclipse.set.application.cacheservice; +import java.util.Arrays; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; import org.eclipse.e4.core.services.events.IEventBroker; import org.eclipse.set.basis.IModelSession; @@ -58,10 +60,8 @@ public Cache getCache(final PlanPro_Schnittstelle schnittstelle, @Override public Cache getCache(final PlanPro_Schnittstelle schnittstelle, - final String cacheId, final String containerCacheId) - throws IllegalArgumentException { - return getCache(getSessionRole(schnittstelle), cacheId, - containerCacheId); + final String... cacheId) throws IllegalArgumentException { + return getCache(getSessionRole(schnittstelle), cacheId); } private void invalidate(final ToolboxFileRole role) { @@ -126,9 +126,10 @@ public Cache getCache(final ToolboxFileRole role, final String cacheId) } @Override - public Cache getCache(final ToolboxFileRole role, final String cacheId, - final String containerCacheId) throws IllegalArgumentException { - final String cacheKey = cacheId + "/" + containerCacheId; //$NON-NLS-1$ + public Cache getCache(final ToolboxFileRole role, final String... cacheId) + throws IllegalArgumentException { + final String cacheKey = Arrays.stream(cacheId) + .collect(Collectors.joining("/")); //$NON-NLS-1$ return getCache(role, cacheKey); } diff --git a/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/CacheService.java b/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/CacheService.java index 9d7b1a2929..ae74323d16 100644 --- a/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/CacheService.java +++ b/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/CacheService.java @@ -38,15 +38,13 @@ public Cache getCache(PlanPro_Schnittstelle schnittstelle, String cacheId) * the {@link PlanPro_Schnittstelle} * @param cacheId * the id for the cache - * @param containerCacheId - * the id for the container to consider * @return the container cache * * @throws IllegalArgumentException * if no cache for the given id is found */ - public Cache getCache(PlanPro_Schnittstelle schnittstelle, String cacheId, - String containerCacheId) throws IllegalArgumentException; + public Cache getCache(PlanPro_Schnittstelle schnittstelle, + String... cacheId) throws IllegalArgumentException; /** * check if already storage cache @@ -80,15 +78,13 @@ public Cache getCache(ToolboxFileRole role, String cacheId) * {@link ToolboxFileRole} * @param cacheId * the id for the cache - * @param containerCacheId - * the id for the container to consider * @return the container cache * * @throws IllegalArgumentException * if no cache for the given id is found */ - public Cache getCache(ToolboxFileRole role, String cacheId, - String containerCacheId) throws IllegalArgumentException; + public Cache getCache(ToolboxFileRole role, String... cacheId) + throws IllegalArgumentException; /** * check if already storage cache diff --git a/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/NoCacheService.java b/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/NoCacheService.java index 478a17e92c..feb874ebc9 100644 --- a/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/NoCacheService.java +++ b/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/cache/NoCacheService.java @@ -36,8 +36,7 @@ public Cache getCache(final PlanPro_Schnittstelle schnittStellle, @Override public Cache getCache(final PlanPro_Schnittstelle schnittStellle, - final String cacheId, final String containerCacheId) - throws IllegalArgumentException { + final String... cacheId) throws IllegalArgumentException { return new NoCache(); } @@ -54,8 +53,8 @@ public Cache getCache(final ToolboxFileRole role, final String cacheId) } @Override - public Cache getCache(final ToolboxFileRole role, final String cacheId, - final String containerCacheId) throws IllegalArgumentException { + public Cache getCache(final ToolboxFileRole role, final String... cacheId) + throws IllegalArgumentException { return new NoCache(); } diff --git a/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/pdf/TableToTableDocument.xtend b/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/pdf/TableToTableDocument.xtend index 99bb47388c..3ec54f07c6 100644 --- a/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/pdf/TableToTableDocument.xtend +++ b/java/bundles/org.eclipse.set.feature.export/src/org/eclipse/set/feature/export/pdf/TableToTableDocument.xtend @@ -17,13 +17,16 @@ import javax.imageio.ImageIO import javax.xml.parsers.DocumentBuilderFactory import javax.xml.parsers.ParserConfigurationException import org.eclipse.set.basis.FreeFieldInfo +import org.eclipse.set.basis.constants.ToolboxConstants import org.eclipse.set.model.tablemodel.CellContent -import org.eclipse.set.model.tablemodel.CompareCellContent import org.eclipse.set.model.tablemodel.CompareFootnoteContainer +import org.eclipse.set.model.tablemodel.CompareStateCellContent import org.eclipse.set.model.tablemodel.CompareTableCellContent +import org.eclipse.set.model.tablemodel.CompareTableFootnoteContainer import org.eclipse.set.model.tablemodel.FootnoteContainer import org.eclipse.set.model.tablemodel.MultiColorCellContent import org.eclipse.set.model.tablemodel.MultiColorContent +import org.eclipse.set.model.tablemodel.PlanCompareRow import org.eclipse.set.model.tablemodel.SimpleFootnoteContainer import org.eclipse.set.model.tablemodel.Table import org.eclipse.set.model.tablemodel.TableContent @@ -41,15 +44,12 @@ import org.w3c.dom.Document import org.w3c.dom.Element import static extension org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.* +import static extension org.eclipse.set.model.tablemodel.extensions.TableCellExtensions.* import static extension org.eclipse.set.model.tablemodel.extensions.TableContentExtensions.* import static extension org.eclipse.set.model.tablemodel.extensions.TableExtensions.* -import static extension org.eclipse.set.model.tablemodel.extensions.TableCellExtensions.* import static extension org.eclipse.set.model.tablemodel.extensions.TableRowExtensions.* import static extension org.eclipse.set.utils.StringExtensions.* import static extension org.eclipse.set.utils.export.xsl.siteplan.SiteplanXSL.pxToMilimeter -import org.eclipse.set.basis.constants.ToolboxConstants -import org.eclipse.set.model.tablemodel.PlanCompareRow -import org.eclipse.set.model.tablemodel.CompareTableFootnoteContainer /** * Transformation from {@link Table} to TableDocument {@link Document}. @@ -343,12 +343,12 @@ class TableToTableDocument { } } - private def dispatch Element createContent(CompareCellContent content, + private def dispatch Element createContent(CompareStateCellContent content, FootnoteContainer fc, int columnNumber, boolean isRemarkColumn) { val element = doc.createElement("DiffContent") formatCompareContent( - content.oldValue, - content.newValue, + content.oldValue.stringValueIterable, + content.newValue.stringValueIterable, [doc.createElement("OldValue")], [doc.createElement("UnchangedValue")], [doc.createElement("NewValue")], @@ -487,8 +487,9 @@ class TableToTableDocument { private def Element addContentToElement(String content, Element element, int columnNumber, boolean isRemarkColumn) { val checkOutput = content.checkForTestOutput(columnNumber) - element.textContent = isRemarkColumn ? checkOutput : checkOutput. - intersperseWithZeroSpacesSC + element.textContent = isRemarkColumn + ? checkOutput + : checkOutput.intersperseWithZeroSpacesSC return element } 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/SskpTransformationService.java b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformationService.java index c2948ebe66..8fbe58c1d6 100644 --- a/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformationService.java +++ b/java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/sskp/SskpTransformationService.java @@ -26,18 +26,20 @@ import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt; import org.eclipse.set.model.planpro.PZB.PZB_Element; import org.eclipse.set.model.tablemodel.ColumnDescriptor; -import org.eclipse.set.model.tablemodel.CompareCellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.MultiColorCellContent; import org.eclipse.set.model.tablemodel.MultiColorContent; import org.eclipse.set.model.tablemodel.RowGroup; import org.eclipse.set.model.tablemodel.RowMergeMode; import org.eclipse.set.model.tablemodel.StringCellContent; import org.eclipse.set.model.tablemodel.TableCell; +import org.eclipse.set.model.tablemodel.extensions.CellContentExtensions; import org.eclipse.set.ppmodel.extensions.PZBElementExtensions; import org.eclipse.set.ppmodel.extensions.utils.TableNameInfo; import org.eclipse.set.utils.table.ColumnDescriptorModelBuilder; import org.eclipse.set.utils.table.sorting.ComparatorBuilder.CellComparatorType; import org.eclipse.set.utils.table.sorting.TableRowGroupComparator; +import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.osgi.service.event.EventAdmin; @@ -91,15 +93,19 @@ private static String getCellContent(final TableCell cell) { if (cell.getContent() instanceof final StringCellContent cellContent) { return getFirstOrNull(cellContent.getValue()); } - if (cell.getContent() instanceof final CompareCellContent cellContent) { - if (cellContent.getNewValue().isEmpty() - || cellContent.getOldValue().isEmpty()) { - return Optional - .ofNullable(getFirstOrNull(cellContent.getNewValue())) - .orElse(getFirstOrNull(cellContent.getOldValue())); + if (cell.getContent() instanceof final CompareStateCellContent cellContent) { + final List oldValues = IterableExtensions + .toList(CellContentExtensions + .getStringValueIterable(cellContent.getOldValue())); + final List newValues = IterableExtensions + .toList(CellContentExtensions + .getStringValueIterable(cellContent.getNewValue())); + if (oldValues.isEmpty() || newValues.isEmpty()) { + return Optional.ofNullable(getFirstOrNull(newValues)) + .orElse(getFirstOrNull(oldValues)); } - return cellContent.getNewValue().get(0) + cellContent.getSeparator() - + cellContent.getOldValue().get(0); + return newValues.get(0) + cellContent.getSeparator() + + oldValues.get(0); } if (cell.getContent() instanceof final MultiColorCellContent cellContent) { final MultiColorContent firstOrNull = getFirstOrNull( 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 0193b07e95..acadd5b8d2 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.* @@ -71,10 +69,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 8f973ef22b..a0a34dee5d 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 1fda133e5f..e794077a28 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_Abhaengigkeit @@ -65,7 +64,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.* /** @@ -94,10 +92,8 @@ class SslzTransformator extends AbstractPlanPro2TableModelTransformator { } override transformTableContent(MultiContainer_AttributeGroup container, - TMFactory factory, Stell_Bereich controlArea) { - val fstrZugRangierList = container.fstrZugRangier.filter [ - isPlanningObject - ].filterObjectsInControlArea(controlArea) + TMFactory factory) { + val fstrZugRangierList = container.fstrZugRangier val fstrZugRangierListSorted = fstrZugRangierList var current = 0 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 4f6ea8867c..3a37bc034d 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 @@ -51,7 +51,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.* @@ -76,14 +75,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.test/src/org/eclipse/set/feature/table/sorting/MixedStringCellComparatorTest.xtend b/java/bundles/org.eclipse.set.feature.table.test/src/org/eclipse/set/feature/table/sorting/MixedStringCellComparatorTest.xtend index e467dc3fa9..3461290aaf 100644 --- a/java/bundles/org.eclipse.set.feature.table.test/src/org/eclipse/set/feature/table/sorting/MixedStringCellComparatorTest.xtend +++ b/java/bundles/org.eclipse.set.feature.table.test/src/org/eclipse/set/feature/table/sorting/MixedStringCellComparatorTest.xtend @@ -14,6 +14,7 @@ import org.eclipse.set.utils.table.sorting.MixedStringCellComparator import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import static org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.createStringCellContent import static org.hamcrest.MatcherAssert.assertThat import static org.hamcrest.core.Is.* import static org.junit.jupiter.api.Assertions.* @@ -35,8 +36,8 @@ class MixedStringCellComparatorTest { @Test def void testMixedCells() { val cell1 = TablemodelFactory.eINSTANCE.createTableCell - val content1 = TablemodelFactory.eINSTANCE.createCompareCellContent - content1.newValue.add("86W9") + val content1 = TablemodelFactory.eINSTANCE.createCompareStateCellContent + content1.newValue = createStringCellContent("86W9") cell1.content = content1 val cell2 = TablemodelFactory.eINSTANCE.createTableCell 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 2be18f648b..8bef6295e2 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 @@ -916,7 +916,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/diff/TableProjectDiffService.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableProjectDiffService.java index 238880ae23..a7543331ed 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableProjectDiffService.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableProjectDiffService.java @@ -10,6 +10,7 @@ */ package org.eclipse.set.feature.table.diff; +import static org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.getStringValueList; import static org.eclipse.set.ppmodel.extensions.EObjectExtensions.getNullableObject; import java.util.ArrayList; @@ -23,7 +24,7 @@ import org.eclipse.set.core.services.session.SessionService; import org.eclipse.set.model.tablemodel.CellContent; import org.eclipse.set.model.tablemodel.ColumnDescriptor; -import org.eclipse.set.model.tablemodel.CompareCellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.CompareTableCellContent; import org.eclipse.set.model.tablemodel.CompareTableFootnoteContainer; import org.eclipse.set.model.tablemodel.FootnoteContainer; @@ -270,7 +271,7 @@ protected boolean isSameValue(final CellContent first, return switch (first) { case final StringCellContent stringContent -> isSameValue( stringContent, second); - case final CompareCellContent compareContent -> isSameValue( + case final CompareStateCellContent compareContent -> isSameValue( compareContent, second); case final MultiColorCellContent multiColorContent -> isSameValue( multiColorContent, second); @@ -311,7 +312,8 @@ private static CompareTableFootnoteContainer createCompareTableFootnoteContainer * the {@link CellContent} * @return true, if the table cell haven same value */ - protected boolean isSameValue(final CompareCellContent firstCellContent, + protected boolean isSameValue( + final CompareStateCellContent firstCellContent, final CellContent secondCellContent) { // Compare between CompareCellContent with another cell content is only // in compare table between two Project available. @@ -323,10 +325,10 @@ protected boolean isSameValue(final CompareCellContent firstCellContent, .createStringCellContent(); if (tableType == TableType.INITIAL) { compareCellStringContent.getValue() - .addAll(firstCellContent.getOldValue()); + .addAll(getStringValueList(firstCellContent.getOldValue())); } else { compareCellStringContent.getValue() - .addAll(firstCellContent.getNewValue()); + .addAll(getStringValueList(firstCellContent.getNewValue())); } return isSameValue(compareCellStringContent, secondCellContent); } @@ -384,17 +386,18 @@ protected boolean isSameValue(final StringCellContent firstCellContent, .collect(Collectors.toSet()); yield firstValues.equals(secondValues); } - case final CompareCellContent compareContent -> { + case final CompareStateCellContent compareContent -> { final TableType tableType = getSessionService() .getLoadedSession(ToolboxFileRole.SESSION) .getTableType(); final Set values = switch (tableType) { - case TableType.INITIAL -> compareContent.getOldValue() - .stream() - .filter(value -> value != null - && !value.trim().isEmpty()) - .collect(Collectors.toSet()); - default -> compareContent.getNewValue() + case TableType.INITIAL -> getStringValueList( + compareContent.getOldValue()) + .stream() + .filter(value -> value != null + && !value.trim().isEmpty()) + .collect(Collectors.toSet()); + default -> getStringValueList(compareContent.getNewValue()) .stream() .filter(value -> value != null && !value.trim().isEmpty()) diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableStateDiffService.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableStateDiffService.java index be30f68bed..59c6e6eabd 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableStateDiffService.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/diff/TableStateDiffService.java @@ -10,6 +10,7 @@ */ package org.eclipse.set.feature.table.diff; +import static org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.createStringCellContent; import static org.eclipse.set.model.tablemodel.extensions.TableCellExtensions.getIterableStringValue; import java.util.Collections; @@ -17,12 +18,12 @@ import org.eclipse.set.core.services.session.SessionService; import org.eclipse.set.model.tablemodel.CellContent; -import org.eclipse.set.model.tablemodel.CompareCellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.MultiColorCellContent; +import org.eclipse.set.model.tablemodel.StringCellContent; import org.eclipse.set.model.tablemodel.TableCell; import org.eclipse.set.model.tablemodel.TablemodelFactory; import org.eclipse.set.model.tablemodel.extensions.CellContentExtensions; -import org.eclipse.set.model.tablemodel.extensions.TableCellExtensions; import org.eclipse.set.ppmodel.extensions.EObjectExtensions; import org.eclipse.set.services.table.TableDiffService; import org.osgi.service.component.annotations.Component; @@ -52,16 +53,24 @@ CellContent createDiffContent(final TableCell oldCell, return oldCell.getContent(); } + if (!StringCellContent.class.isInstance(oldCell.getContent()) + || newCell != null && newCell.getContent() != null + && !StringCellContent.class + .isInstance(newCell.getContent())) { + throw new IllegalArgumentException( + "Can create CompareStateCellContent only from StringCellContent"); //$NON-NLS-1$ + } + final Set oldValues = getIterableStringValue(oldCell); final Set newValues = newCell == null ? Collections.emptySet() : getIterableStringValue(newCell); if (oldValues.equals(newValues)) { return null; } - final CompareCellContent compareContent = TablemodelFactory.eINSTANCE - .createCompareCellContent(); - compareContent.getOldValue().addAll(oldValues); - compareContent.getNewValue().addAll(newValues); + final CompareStateCellContent compareContent = TablemodelFactory.eINSTANCE + .createCompareStateCellContent(); + compareContent.setOldValue(createStringCellContent(oldValues)); + compareContent.setNewValue(createStringCellContent(newValues)); compareContent.setSeparator(EObjectExtensions .getNullableObject(oldCell, c -> c.getContent().getSeparator()) .orElse(null)); @@ -85,17 +94,19 @@ private static void createMultiColorDiffCotent(final TableCell oldCell, // Convert to CompareCellContent, when give different between // initial // and final state - final CompareCellContent compareCellContent = TablemodelFactory.eINSTANCE - .createCompareCellContent(); + final CompareStateCellContent compareCellContent = TablemodelFactory.eINSTANCE + .createCompareStateCellContent(); oldCellContent.getValue() - .forEach(colorContent -> compareCellContent.getOldValue() - .add(String.format(colorContent.getStringFormat(), - colorContent.getMultiColorValue()))); + .forEach(colorContent -> compareCellContent + .setOldValue(createStringCellContent(String.format( + colorContent.getStringFormat(), + colorContent.getMultiColorValue())))); newCellContent.getValue() - .forEach(colorContent -> compareCellContent.getNewValue() - .add(String.format(colorContent.getStringFormat(), - colorContent.getMultiColorValue()))); + .forEach(colorContent -> compareCellContent + .setNewValue(createStringCellContent(String.format( + colorContent.getStringFormat(), + colorContent.getMultiColorValue())))); oldCell.setContent(compareCellContent); } } 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 a1e1ae40c4..b4b519f838 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; @@ -22,9 +21,12 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; 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; @@ -39,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; @@ -55,15 +58,24 @@ 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.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; @@ -179,15 +191,19 @@ void removeDiffService(final TableCompareType compareType) { } } - 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; } @@ -207,20 +223,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( @@ -328,73 +330,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; } @@ -491,50 +480,229 @@ 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; } - return resultTable; + 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 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 @@ -544,13 +712,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, @@ -729,7 +895,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); return compareTable; } catch (final Exception e) { dialogService.error(Display.getCurrent().getActiveShell(), @@ -741,8 +907,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.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_CompareStateCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_CompareStateCellContent.gif new file mode 100644 index 0000000000..a47b32b7d9 Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_CompareStateCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_CompareTableCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_CompareTableCellContent.gif new file mode 100644 index 0000000000..7e2fd2ea3b Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_CompareTableCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_MultiColorCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_MultiColorCellContent.gif new file mode 100644 index 0000000000..5a20caaa71 Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_MultiColorCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_StringCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_StringCellContent.gif new file mode 100644 index 0000000000..70597ff15f Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_newValue_StringCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_CompareStateCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_CompareStateCellContent.gif new file mode 100644 index 0000000000..a47b32b7d9 Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_CompareStateCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_CompareTableCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_CompareTableCellContent.gif new file mode 100644 index 0000000000..7e2fd2ea3b Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_CompareTableCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_MultiColorCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_MultiColorCellContent.gif new file mode 100644 index 0000000000..5a20caaa71 Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_MultiColorCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_StringCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_StringCellContent.gif new file mode 100644 index 0000000000..70597ff15f Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareStateCellContent_oldValue_StringCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareTableCellContent_comparePlanCellContent_CompareStateCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareTableCellContent_comparePlanCellContent_CompareStateCellContent.gif new file mode 100644 index 0000000000..d6ef26260c Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareTableCellContent_comparePlanCellContent_CompareStateCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareTableCellContent_mainPlanCellContent_CompareStateCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareTableCellContent_mainPlanCellContent_CompareStateCellContent.gif new file mode 100644 index 0000000000..d6ef26260c Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateCompareTableCellContent_mainPlanCellContent_CompareStateCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateTableCell_content_CompareStateCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateTableCell_content_CompareStateCellContent.gif new file mode 100644 index 0000000000..88d8844103 Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/ctool16/CreateTableCell_content_CompareStateCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/obj16/CompareStateCellContent.gif b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/obj16/CompareStateCellContent.gif new file mode 100644 index 0000000000..33854e98c2 Binary files /dev/null and b/java/bundles/org.eclipse.set.model.tablemodel.edit/icons/full/obj16/CompareStateCellContent.gif differ diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/plugin.properties b/java/bundles/org.eclipse.set.model.tablemodel.edit/plugin.properties index 799721dd6e..3cd5f1da5e 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.edit/plugin.properties +++ b/java/bundles/org.eclipse.set.model.tablemodel.edit/plugin.properties @@ -98,3 +98,6 @@ _UI_PlanCompareRow_rowType_feature = Row Type _UI_PlanCompareRowType_NEW_ROW_literal = NEW_ROW _UI_PlanCompareRowType_REMOVED_ROW_literal = REMOVED_ROW _UI_PlanCompareRowType_CHANGED_GUID_ROW_literal = CHANGED_GUID_ROW +_UI_CompareStateCellContent_type = Compare State Cell Content +_UI_CompareStateCellContent_oldValue_feature = Old Value +_UI_CompareStateCellContent_newValue_feature = New Value diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareCellContentItemProvider.java b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareCellContentItemProvider.java deleted file mode 100644 index e95e17cd71..0000000000 --- a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareCellContentItemProvider.java +++ /dev/null @@ -1,161 +0,0 @@ -/** - * Copyright (c) 2022 DB Netz AG and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v2.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v20.html - */ -package org.eclipse.set.model.tablemodel.provider; - -import java.util.Collection; -import java.util.List; - -import org.eclipse.emf.common.notify.AdapterFactory; -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; -import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; -import org.eclipse.emf.edit.provider.ItemPropertyDescriptor; -import org.eclipse.emf.edit.provider.ViewerNotification; - -import org.eclipse.set.model.tablemodel.CompareCellContent; -import org.eclipse.set.model.tablemodel.TablemodelPackage; - -/** - * This is the item provider adapter for a - * {@link org.eclipse.set.model.tablemodel.CompareCellContent} object. - * - * @generated - */ -public class CompareCellContentItemProvider extends CellContentItemProvider { - /** - * This constructs an instance from a factory and a notifier. - * - * @generated - */ - public CompareCellContentItemProvider(AdapterFactory adapterFactory) { - super(adapterFactory); - } - - /** - * This returns the property descriptors for the adapted class. - * - * @generated - */ - @Override - public List getPropertyDescriptors(Object object) { - if (itemPropertyDescriptors == null) { - super.getPropertyDescriptors(object); - - addOldValuePropertyDescriptor(object); - addNewValuePropertyDescriptor(object); - } - return itemPropertyDescriptors; - } - - /** - * This adds a property descriptor for the Old Value feature. - * - * @generated - */ - protected void addOldValuePropertyDescriptor(Object object) { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory) adapterFactory) - .getRootAdapterFactory(), - getResourceLocator(), - getString("_UI_CompareCellContent_oldValue_feature"), - getString("_UI_PropertyDescriptor_description", - "_UI_CompareCellContent_oldValue_feature", - "_UI_CompareCellContent_type"), - TablemodelPackage.Literals.COMPARE_CELL_CONTENT__OLD_VALUE, - true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); - } - - /** - * This adds a property descriptor for the New Value feature. - * - * @generated - */ - protected void addNewValuePropertyDescriptor(Object object) { - itemPropertyDescriptors.add(createItemPropertyDescriptor( - ((ComposeableAdapterFactory) adapterFactory) - .getRootAdapterFactory(), - getResourceLocator(), - getString("_UI_CompareCellContent_newValue_feature"), - getString("_UI_PropertyDescriptor_description", - "_UI_CompareCellContent_newValue_feature", - "_UI_CompareCellContent_type"), - TablemodelPackage.Literals.COMPARE_CELL_CONTENT__NEW_VALUE, - true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, - null, null)); - } - - /** - * This returns CompareCellContent.gif. - * - * @generated - */ - @Override - public Object getImage(Object object) { - return overlayImage(object, - getResourceLocator().getImage("full/obj16/CompareCellContent")); - } - - /** - * This returns the label text for the adapted class. - * - * @generated - */ - @Override - public String getText(Object object) { - String label = ((CompareCellContent) object).getSeparator(); - return label == null || label.length() == 0 - ? getString("_UI_CompareCellContent_type") - : getString("_UI_CompareCellContent_type") + " " + label; - } - - /** - * This handles model notifications by calling {@link #updateChildren} to - * update any cached children and by creating a viewer notification, which - * it passes to {@link #fireNotifyChanged}. - * - * @generated - */ - @Override - public void notifyChanged(Notification notification) { - updateChildren(notification); - - switch (notification.getFeatureID(CompareCellContent.class)) { - case TablemodelPackage.COMPARE_CELL_CONTENT__OLD_VALUE: - case TablemodelPackage.COMPARE_CELL_CONTENT__NEW_VALUE: - fireNotifyChanged(new ViewerNotification(notification, - notification.getNotifier(), false, true)); - return; - } - super.notifyChanged(notification); - } - - /** - * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s - * describing the children that can be created under this object. - * - * @generated - */ - @Override - protected void collectNewChildDescriptors( - Collection newChildDescriptors, Object object) { - super.collectNewChildDescriptors(newChildDescriptors, object); - } - -} diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareStateCellContentItemProvider.java b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareStateCellContentItemProvider.java new file mode 100644 index 0000000000..cf810fb14c --- /dev/null +++ b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareStateCellContentItemProvider.java @@ -0,0 +1,214 @@ +/** + * Copyright (c) 2022 DB Netz AG and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v20.html + */ +package org.eclipse.set.model.tablemodel.provider; + +import java.util.Collection; +import java.util.List; + +import org.eclipse.emf.common.notify.AdapterFactory; +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EStructuralFeature; + +import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.emf.edit.provider.ViewerNotification; + +import org.eclipse.set.model.tablemodel.CompareStateCellContent; +import org.eclipse.set.model.tablemodel.TablemodelFactory; +import org.eclipse.set.model.tablemodel.TablemodelPackage; + +/** + * This is the item provider adapter for a + * {@link org.eclipse.set.model.tablemodel.CompareStateCellContent} object. + * + * @generated + */ +public class CompareStateCellContentItemProvider + extends CellContentItemProvider { + /** + * This constructs an instance from a factory and a notifier. + * + * @generated + */ + public CompareStateCellContentItemProvider(AdapterFactory adapterFactory) { + super(adapterFactory); + } + + /** + * This returns the property descriptors for the adapted class. + * + * @generated + */ + @Override + public List getPropertyDescriptors(Object object) { + if (itemPropertyDescriptors == null) { + super.getPropertyDescriptors(object); + + } + return itemPropertyDescriptors; + } + + /** + * This specifies how to implement {@link #getChildren} and is used to + * deduce an appropriate feature for an + * {@link org.eclipse.emf.edit.command.AddCommand}, + * {@link org.eclipse.emf.edit.command.RemoveCommand} or + * {@link org.eclipse.emf.edit.command.MoveCommand} in + * {@link #createCommand}. + * + * @generated + */ + @Override + public Collection getChildrenFeatures( + Object object) { + if (childrenFeatures == null) { + super.getChildrenFeatures(object); + childrenFeatures.add( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__OLD_VALUE); + childrenFeatures.add( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__NEW_VALUE); + } + return childrenFeatures; + } + + /** + * + * + * @generated + */ + @Override + protected EStructuralFeature getChildFeature(Object object, Object child) { + // Check the type of the specified child object and return the proper + // feature to use for + // adding (see {@link AddCommand}) it as a child. + + return super.getChildFeature(object, child); + } + + /** + * This returns CompareStateCellContent.gif. + * + * @generated + */ + @Override + public Object getImage(Object object) { + return overlayImage(object, getResourceLocator() + .getImage("full/obj16/CompareStateCellContent")); + } + + /** + * This returns the label text for the adapted class. + * + * @generated + */ + @Override + public String getText(Object object) { + String label = ((CompareStateCellContent) object).getSeparator(); + return label == null || label.length() == 0 + ? getString("_UI_CompareStateCellContent_type") + : getString("_UI_CompareStateCellContent_type") + " " + label; + } + + /** + * This handles model notifications by calling {@link #updateChildren} to + * update any cached children and by creating a viewer notification, which + * it passes to {@link #fireNotifyChanged}. + * + * @generated + */ + @Override + public void notifyChanged(Notification notification) { + updateChildren(notification); + + switch (notification.getFeatureID(CompareStateCellContent.class)) { + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE: + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE: + fireNotifyChanged(new ViewerNotification(notification, + notification.getNotifier(), true, false)); + return; + } + super.notifyChanged(notification); + } + + /** + * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s + * describing the children that can be created under this object. + * + * @generated + */ + @Override + protected void collectNewChildDescriptors( + Collection newChildDescriptors, Object object) { + super.collectNewChildDescriptors(newChildDescriptors, object); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + TablemodelFactory.eINSTANCE.createStringCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + TablemodelFactory.eINSTANCE.createCompareStateCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + TablemodelFactory.eINSTANCE.createMultiColorCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + TablemodelFactory.eINSTANCE.createCompareTableCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + TablemodelFactory.eINSTANCE.createStringCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + TablemodelFactory.eINSTANCE.createCompareStateCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + TablemodelFactory.eINSTANCE.createMultiColorCellContent())); + + newChildDescriptors.add(createChildParameter( + TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + TablemodelFactory.eINSTANCE.createCompareTableCellContent())); + } + + /** + * This returns the label text for + * {@link org.eclipse.emf.edit.command.CreateChildCommand}. + * + * @generated + */ + @Override + public String getCreateChildText(Object owner, Object feature, Object child, + Collection selection) { + Object childFeature = feature; + Object childObject = child; + + boolean qualify = childFeature == TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__OLD_VALUE + || childFeature == TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT__NEW_VALUE; + + if (qualify) { + return getString("_UI_CreateChild_text2", + new Object[] { getTypeText(childObject), + getFeatureText(childFeature), getTypeText(owner) }); + } + return super.getCreateChildText(owner, feature, child, selection); + } + +} diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareTableCellContentItemProvider.java b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareTableCellContentItemProvider.java index 02e66c93d5..1d08bf5419 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareTableCellContentItemProvider.java +++ b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/CompareTableCellContentItemProvider.java @@ -160,7 +160,7 @@ protected void collectNewChildDescriptors( newChildDescriptors.add(createChildParameter( TablemodelPackage.Literals.COMPARE_TABLE_CELL_CONTENT__MAIN_PLAN_CELL_CONTENT, - TablemodelFactory.eINSTANCE.createCompareCellContent())); + TablemodelFactory.eINSTANCE.createCompareStateCellContent())); newChildDescriptors.add(createChildParameter( TablemodelPackage.Literals.COMPARE_TABLE_CELL_CONTENT__MAIN_PLAN_CELL_CONTENT, @@ -176,7 +176,7 @@ protected void collectNewChildDescriptors( newChildDescriptors.add(createChildParameter( TablemodelPackage.Literals.COMPARE_TABLE_CELL_CONTENT__COMPARE_PLAN_CELL_CONTENT, - TablemodelFactory.eINSTANCE.createCompareCellContent())); + TablemodelFactory.eINSTANCE.createCompareStateCellContent())); newChildDescriptors.add(createChildParameter( TablemodelPackage.Literals.COMPARE_TABLE_CELL_CONTENT__COMPARE_PLAN_CELL_CONTENT, diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TableCellItemProvider.java b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TableCellItemProvider.java index c8647fc333..17ef503c07 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TableCellItemProvider.java +++ b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TableCellItemProvider.java @@ -186,7 +186,7 @@ protected void collectNewChildDescriptors( newChildDescriptors.add(createChildParameter( TablemodelPackage.Literals.TABLE_CELL__CONTENT, - TablemodelFactory.eINSTANCE.createCompareCellContent())); + TablemodelFactory.eINSTANCE.createCompareStateCellContent())); newChildDescriptors.add(createChildParameter( TablemodelPackage.Literals.TABLE_CELL__CONTENT, diff --git a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TablemodelItemProviderAdapterFactory.java b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TablemodelItemProviderAdapterFactory.java index 567a13c9ff..5e105833f8 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TablemodelItemProviderAdapterFactory.java +++ b/java/bundles/org.eclipse.set.model.tablemodel.edit/src/org/eclipse/set/model/tablemodel/provider/TablemodelItemProviderAdapterFactory.java @@ -261,28 +261,28 @@ public Adapter createStringCellContentAdapter() { /** * This keeps track of the one adapter used for all - * {@link org.eclipse.set.model.tablemodel.CompareCellContent} instances. - * + * {@link org.eclipse.set.model.tablemodel.CompareStateCellContent} + * instances. * * @generated */ - protected CompareCellContentItemProvider compareCellContentItemProvider; + protected CompareStateCellContentItemProvider compareStateCellContentItemProvider; /** * This creates an adapter for a - * {@link org.eclipse.set.model.tablemodel.CompareCellContent}. * * @generated */ @Override - public Adapter createCompareCellContentAdapter() { - if (compareCellContentItemProvider == null) { - compareCellContentItemProvider = new CompareCellContentItemProvider( + public Adapter createCompareStateCellContentAdapter() { + if (compareStateCellContentItemProvider == null) { + compareStateCellContentItemProvider = new CompareStateCellContentItemProvider( this); } - return compareCellContentItemProvider; + return compareStateCellContentItemProvider; } /** @@ -612,8 +612,8 @@ public void dispose() { tableCellItemProvider.dispose(); if (stringCellContentItemProvider != null) stringCellContentItemProvider.dispose(); - if (compareCellContentItemProvider != null) - compareCellContentItemProvider.dispose(); + if (compareStateCellContentItemProvider != null) + compareStateCellContentItemProvider.dispose(); if (cellAnnotationItemProvider != null) cellAnnotationItemProvider.dispose(); if (multiColorCellContentItemProvider != null) diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions.test/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensionsTest.java b/java/bundles/org.eclipse.set.model.tablemodel.extensions.test/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensionsTest.java index 7af4f88317..6966b2531f 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions.test/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensionsTest.java +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions.test/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensionsTest.java @@ -12,7 +12,7 @@ import static org.hamcrest.core.Is.is; import org.eclipse.set.model.tablemodel.CellContent; -import org.eclipse.set.model.tablemodel.CompareCellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.StringCellContent; import org.eclipse.set.model.tablemodel.TableCell; import org.eclipse.set.model.tablemodel.TablemodelFactory; @@ -26,12 +26,12 @@ @SuppressWarnings("nls") public class CellContentExtensionsTest { - private static CompareCellContent createCompareCellContent( + private static CompareStateCellContent createCompareCellContent( final String oldValue, final String newValue) { - final CompareCellContent content = TablemodelFactory.eINSTANCE - .createCompareCellContent(); - content.getOldValue().add(oldValue); - content.getNewValue().add(newValue); + final CompareStateCellContent content = TablemodelFactory.eINSTANCE + .createCompareStateCellContent(); + content.setOldValue(createStringCellContent(oldValue)); + content.setNewValue(createStringCellContent(newValue)); final TableCell tableCell = TablemodelFactory.eINSTANCE .createTableCell(); tableCell.setContent(content); diff --git a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend index a986735f66..a4eb2207af 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend +++ b/java/bundles/org.eclipse.set.model.tablemodel.extensions/src/org/eclipse/set/model/tablemodel/extensions/CellContentExtensions.xtend @@ -14,8 +14,8 @@ import java.util.function.BiFunction import java.util.function.Function import org.eclipse.set.model.planpro.Basisobjekte.Bearbeitungsvermerk import org.eclipse.set.model.tablemodel.CellContent -import org.eclipse.set.model.tablemodel.CompareCellContent import org.eclipse.set.model.tablemodel.CompareFootnoteContainer +import org.eclipse.set.model.tablemodel.CompareStateCellContent import org.eclipse.set.model.tablemodel.CompareTableCellContent import org.eclipse.set.model.tablemodel.CompareTableFootnoteContainer import org.eclipse.set.model.tablemodel.FootnoteContainer @@ -24,12 +24,14 @@ import org.eclipse.set.model.tablemodel.MultiColorContent import org.eclipse.set.model.tablemodel.SimpleFootnoteContainer import org.eclipse.set.model.tablemodel.StringCellContent import org.eclipse.set.model.tablemodel.TableCell +import org.eclipse.set.model.tablemodel.TablemodelFactory import org.eclipse.set.utils.ToolboxConfiguration import static org.eclipse.set.model.tablemodel.extensions.Utils.* import static extension org.eclipse.set.model.tablemodel.extensions.TableCellExtensions.* import static extension org.eclipse.set.utils.StringExtensions.* +import java.util.List /** * Extensions for {@link CellContent}. @@ -69,10 +71,11 @@ class CellContentExtensions { »«content.valueFormat»

''' } - static def dispatch String getRichTextValue(CompareCellContent content) { + static def dispatch String getRichTextValue( + CompareStateCellContent content) { val result = formatCompareContent( - content.oldValue, - content.newValue, + content.oldValue.stringValueIterable, + content.newValue.stringValueIterable, [WARNING_MARK_YELLOW], [WARNING_MARK_BLACK], [WARNING_MARK_RED], @@ -184,8 +187,9 @@ class CellContentExtensions { return content.value.iterableToString(content.separator) } - static def dispatch String getPlainStringValue(CompareCellContent content) { - return '''«content.oldValue»/«content.newValue»''' + static def dispatch String getPlainStringValue( + CompareStateCellContent content) { + return '''«content.oldValue.stringValueIterable»/«content.newValue.stringValueIterable»''' } static def dispatch String getPlainStringValue( @@ -217,6 +221,10 @@ class CellContentExtensions { return content.value } + static def List getStringValueList(CellContent content) { + return content.stringValueIterable.toList + } + /** * @param text the text * @@ -311,9 +319,10 @@ class CellContentExtensions { content.value.filterNull.toSet.toList.map [ postFormatter.apply(it, commonFormatter.apply(it)) ] - CompareCellContent: - formatCompareContent(content.oldValue, content.newValue, - oldFormatter, commonFormatter, newFormatter, postFormatter) + CompareStateCellContent: + formatCompareContent(content.oldValue.stringValueIterable, + content.newValue.stringValueIterable, oldFormatter, + commonFormatter, newFormatter, postFormatter) CompareTableCellContent: formatCompareContent(content.mainPlanCellContent, oldFormatter, commonFormatter, newFormatter, postFormatter) @@ -430,4 +439,15 @@ class CellContentExtensions { def static boolean isEqual(CellContent content, CellContent other) { return content.plainStringValue.equals(other.plainStringValue) } + + def static StringCellContent createStringCellContent(String value) { + return createStringCellContent(#[value]) + } + + def static StringCellContent createStringCellContent( + Iterable value) { + val cellContent = TablemodelFactory.eINSTANCE.createStringCellContent + cellContent.value.addAll(value) + return cellContent + } } diff --git a/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.ecore b/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.ecore index 03148d0b6e..d2ceb384bb 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.ecore +++ b/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.ecore @@ -154,22 +154,14 @@ - +
- - -
- - - - -
- - + + diff --git a/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.genmodel b/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.genmodel index 5903ab4377..55db599a75 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.genmodel +++ b/java/bundles/org.eclipse.set.model.tablemodel/model/tablemodel.genmodel @@ -63,9 +63,9 @@ - - - + + + diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/CompareCellContent.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/CompareCellContent.java deleted file mode 100644 index 70861e00c9..0000000000 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/CompareCellContent.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright (c) 2022 DB Netz AG and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v2.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v20.html - */ -package org.eclipse.set.model.tablemodel; - -import org.eclipse.emf.common.util.EList; - -/** - * A representation of the model object 'Compare - * Cell Content'. - * - * Result of a compare operation between two cells. - * - * - *

- * The following features are supported: - *

- *
    - *
  • {@link org.eclipse.set.model.tablemodel.CompareCellContent#getOldValue - * Old Value}
  • - *
  • {@link org.eclipse.set.model.tablemodel.CompareCellContent#getNewValue - * New Value}
  • - *
- * - * @see org.eclipse.set.model.tablemodel.TablemodelPackage#getCompareCellContent() - * @model - * @generated - */ -public interface CompareCellContent extends CellContent { - /** - * Returns the value of the 'Old Value' attribute list. The - * list contents are of type {@link java.lang.String}. The old value - * - * @return the value of the 'Old Value' attribute list. - * @see org.eclipse.set.model.tablemodel.TablemodelPackage#getCompareCellContent_OldValue() - * @model - * @generated - */ - EList getOldValue(); - - /** - * Returns the value of the 'New Value' attribute list. The - * list contents are of type {@link java.lang.String}. The new value - * - * @return the value of the 'New Value' attribute list. - * @see org.eclipse.set.model.tablemodel.TablemodelPackage#getCompareCellContent_NewValue() - * @model - * @generated - */ - EList getNewValue(); - -} // CompareCellContent diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/CompareStateCellContent.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/CompareStateCellContent.java new file mode 100644 index 0000000000..6216ae66d6 --- /dev/null +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/CompareStateCellContent.java @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2022 DB Netz AG and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v20.html + */ +package org.eclipse.set.model.tablemodel; + +/** + * A representation of the model object 'Compare + * State Cell Content'. + * + * Result of a compare operation between two cells. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.set.model.tablemodel.CompareStateCellContent#getOldValue + * Old Value}
  • + *
  • {@link org.eclipse.set.model.tablemodel.CompareStateCellContent#getNewValue + * New Value}
  • + *
+ * + * @see org.eclipse.set.model.tablemodel.TablemodelPackage#getCompareStateCellContent() + * @model + * @generated + */ +public interface CompareStateCellContent extends CellContent { + /** + * Returns the value of the 'Old Value' containment + * reference. + * + * @return the value of the 'Old Value' containment reference. + * @see #setOldValue(CellContent) + * @see org.eclipse.set.model.tablemodel.TablemodelPackage#getCompareStateCellContent_OldValue() + * @model containment="true" + * @generated + */ + CellContent getOldValue(); + + /** + * Sets the value of the + * '{@link org.eclipse.set.model.tablemodel.CompareStateCellContent#getOldValue + * Old Value}' containment reference. + * + * @param value + * the new value of the 'Old Value' containment + * reference. + * @see #getOldValue() + * @generated + */ + void setOldValue(CellContent value); + + /** + * Returns the value of the 'New Value' containment + * reference. + * + * @return the value of the 'New Value' containment reference. + * @see #setNewValue(CellContent) + * @see org.eclipse.set.model.tablemodel.TablemodelPackage#getCompareStateCellContent_NewValue() + * @model containment="true" + * @generated + */ + CellContent getNewValue(); + + /** + * Sets the value of the + * '{@link org.eclipse.set.model.tablemodel.CompareStateCellContent#getNewValue + * New Value}' containment reference. + * + * @param value + * the new value of the 'New Value' containment + * reference. + * @see #getNewValue() + * @generated + */ + void setNewValue(CellContent value); + +} // CompareStateCellContent diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/TablemodelFactory.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/TablemodelFactory.java index 4e06d84410..837e2cbcc1 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/TablemodelFactory.java +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/TablemodelFactory.java @@ -91,13 +91,13 @@ public interface TablemodelFactory extends EFactory { StringCellContent createStringCellContent(); /** - * Returns a new object of class 'Compare Cell Content'. * - * @return a new object of class 'Compare Cell Content'. + * @return a new object of class 'Compare State Cell Content'. * @generated */ - CompareCellContent createCompareCellContent(); + CompareStateCellContent createCompareStateCellContent(); /** * Returns a new object of class 'Cell Annotation'. * - * @see org.eclipse.set.model.tablemodel.impl.CompareCellContentImpl - * @see org.eclipse.set.model.tablemodel.impl.TablemodelPackageImpl#getCompareCellContent() + * @see org.eclipse.set.model.tablemodel.impl.CompareStateCellContentImpl + * @see org.eclipse.set.model.tablemodel.impl.TablemodelPackageImpl#getCompareStateCellContent() * @generated */ - int COMPARE_CELL_CONTENT = 8; + int COMPARE_STATE_CELL_CONTENT = 8; /** * The feature id for the 'Separator' attribute. + * The feature id for the 'Old Value' containment reference. + * * * @generated * @ordered */ - int COMPARE_CELL_CONTENT__OLD_VALUE = CELL_CONTENT_FEATURE_COUNT + 0; + int COMPARE_STATE_CELL_CONTENT__OLD_VALUE = CELL_CONTENT_FEATURE_COUNT + 0; /** - * The feature id for the 'New Value' attribute list. + * The feature id for the 'New Value' containment reference. + * * * @generated * @ordered */ - int COMPARE_CELL_CONTENT__NEW_VALUE = CELL_CONTENT_FEATURE_COUNT + 1; + int COMPARE_STATE_CELL_CONTENT__NEW_VALUE = CELL_CONTENT_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Compare Cell Content' - * class. + * The number of structural features of the 'Compare State Cell + * Content' class. * * @generated * @ordered */ - int COMPARE_CELL_CONTENT_FEATURE_COUNT = CELL_CONTENT_FEATURE_COUNT + 2; + int COMPARE_STATE_CELL_CONTENT_FEATURE_COUNT = CELL_CONTENT_FEATURE_COUNT + + 2; /** - * The number of operations of the 'Compare Cell Content' class. - * + * The number of operations of the 'Compare State Cell Content' + * class. * * @generated * @ordered */ - int COMPARE_CELL_CONTENT_OPERATION_COUNT = CELL_CONTENT_OPERATION_COUNT + 0; + int COMPARE_STATE_CELL_CONTENT_OPERATION_COUNT = CELL_CONTENT_OPERATION_COUNT + + 0; /** * The meta object id for the @@ -1448,38 +1450,41 @@ public interface TablemodelPackage extends EPackage { /** * Returns the meta object for class - * '{@link org.eclipse.set.model.tablemodel.CompareCellContent Compare - * Cell Content}'. + * '{@link org.eclipse.set.model.tablemodel.CompareStateCellContent + * Compare State Cell Content}'. * - * @return the meta object for class 'Compare Cell Content'. - * @see org.eclipse.set.model.tablemodel.CompareCellContent + * @return the meta object for class 'Compare State Cell Content'. + * @see org.eclipse.set.model.tablemodel.CompareStateCellContent * @generated */ - EClass getCompareCellContent(); + EClass getCompareStateCellContent(); /** - * Returns the meta object for the attribute list - * '{@link org.eclipse.set.model.tablemodel.CompareCellContent#getOldValue + * Returns the meta object for the containment reference + * '{@link org.eclipse.set.model.tablemodel.CompareStateCellContent#getOldValue * Old Value}'. * - * @return the meta object for the attribute list 'Old Value'. - * @see org.eclipse.set.model.tablemodel.CompareCellContent#getOldValue() - * @see #getCompareCellContent() + * @return the meta object for the containment reference 'Old + * Value'. + * @see org.eclipse.set.model.tablemodel.CompareStateCellContent#getOldValue() + * @see #getCompareStateCellContent() * @generated */ - EAttribute getCompareCellContent_OldValue(); + EReference getCompareStateCellContent_OldValue(); /** - * Returns the meta object for the attribute list - * '{@link org.eclipse.set.model.tablemodel.CompareCellContent#getNewValue + * Returns the meta object for the containment reference + * '{@link org.eclipse.set.model.tablemodel.CompareStateCellContent#getNewValue * New Value}'. * - * @return the meta object for the attribute list 'New Value'. - * @see org.eclipse.set.model.tablemodel.CompareCellContent#getNewValue() - * @see #getCompareCellContent() + * @return the meta object for the containment reference 'New + * Value'. + * @see org.eclipse.set.model.tablemodel.CompareStateCellContent#getNewValue() + * @see #getCompareStateCellContent() * @generated */ - EAttribute getCompareCellContent_NewValue(); + EReference getCompareStateCellContent_NewValue(); /** * Returns the meta object for class @@ -2121,33 +2126,36 @@ interface Literals { /** * The meta object literal for the - * '{@link org.eclipse.set.model.tablemodel.impl.CompareCellContentImpl - * Compare Cell Content}' class. + * '{@link org.eclipse.set.model.tablemodel.impl.CompareStateCellContentImpl + * Compare State Cell Content}' class. + * * - * @see org.eclipse.set.model.tablemodel.impl.CompareCellContentImpl - * @see org.eclipse.set.model.tablemodel.impl.TablemodelPackageImpl#getCompareCellContent() + * @see org.eclipse.set.model.tablemodel.impl.CompareStateCellContentImpl + * @see org.eclipse.set.model.tablemodel.impl.TablemodelPackageImpl#getCompareStateCellContent() * @generated */ - EClass COMPARE_CELL_CONTENT = eINSTANCE.getCompareCellContent(); + EClass COMPARE_STATE_CELL_CONTENT = eINSTANCE + .getCompareStateCellContent(); /** - * The meta object literal for the 'Old Value' attribute - * list feature. + * The meta object literal for the 'Old Value' + * containment reference feature. * * @generated */ - EAttribute COMPARE_CELL_CONTENT__OLD_VALUE = eINSTANCE - .getCompareCellContent_OldValue(); + EReference COMPARE_STATE_CELL_CONTENT__OLD_VALUE = eINSTANCE + .getCompareStateCellContent_OldValue(); /** - * The meta object literal for the 'New Value' attribute - * list feature. + * The meta object literal for the 'New Value' + * containment reference feature. * * @generated */ - EAttribute COMPARE_CELL_CONTENT__NEW_VALUE = eINSTANCE - .getCompareCellContent_NewValue(); + EReference COMPARE_STATE_CELL_CONTENT__NEW_VALUE = eINSTANCE + .getCompareStateCellContent_NewValue(); /** * The meta object literal for the diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/CompareCellContentImpl.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/CompareCellContentImpl.java deleted file mode 100644 index 7328d8c8f1..0000000000 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/CompareCellContentImpl.java +++ /dev/null @@ -1,192 +0,0 @@ -/** - * Copyright (c) 2022 DB Netz AG and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v2.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v20.html - */ -package org.eclipse.set.model.tablemodel.impl; - -import java.util.Collection; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; -import org.eclipse.set.model.tablemodel.CompareCellContent; -import org.eclipse.set.model.tablemodel.TablemodelPackage; - -/** - * An implementation of the model object 'Compare - * Cell Content'. - *

- * The following features are implemented: - *

- *
    - *
  • {@link org.eclipse.set.model.tablemodel.impl.CompareCellContentImpl#getOldValue - * Old Value}
  • - *
  • {@link org.eclipse.set.model.tablemodel.impl.CompareCellContentImpl#getNewValue - * New Value}
  • - *
- * - * @generated - */ -public class CompareCellContentImpl extends CellContentImpl - implements CompareCellContent { - /** - * The cached value of the '{@link #getOldValue() Old Value}' - * attribute list. - * - * @see #getOldValue() - * @generated - * @ordered - */ - protected EList oldValue; - - /** - * The cached value of the '{@link #getNewValue() New Value}' - * attribute list. - * - * @see #getNewValue() - * @generated - * @ordered - */ - protected EList newValue; - - /** - * - * - * @generated - */ - protected CompareCellContentImpl() { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() { - return TablemodelPackage.Literals.COMPARE_CELL_CONTENT; - } - - /** - * - * - * @generated - */ - @Override - public EList getOldValue() { - if (oldValue == null) { - oldValue = new EDataTypeUniqueEList(String.class, this, - TablemodelPackage.COMPARE_CELL_CONTENT__OLD_VALUE); - } - return oldValue; - } - - /** - * - * - * @generated - */ - @Override - public EList getNewValue() { - if (newValue == null) { - newValue = new EDataTypeUniqueEList(String.class, this, - TablemodelPackage.COMPARE_CELL_CONTENT__NEW_VALUE); - } - return newValue; - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) { - switch (featureID) { - case TablemodelPackage.COMPARE_CELL_CONTENT__OLD_VALUE: - return getOldValue(); - case TablemodelPackage.COMPARE_CELL_CONTENT__NEW_VALUE: - return getNewValue(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) { - switch (featureID) { - case TablemodelPackage.COMPARE_CELL_CONTENT__OLD_VALUE: - getOldValue().clear(); - getOldValue().addAll((Collection) newValue); - return; - case TablemodelPackage.COMPARE_CELL_CONTENT__NEW_VALUE: - getNewValue().clear(); - getNewValue().addAll((Collection) newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) { - switch (featureID) { - case TablemodelPackage.COMPARE_CELL_CONTENT__OLD_VALUE: - getOldValue().clear(); - return; - case TablemodelPackage.COMPARE_CELL_CONTENT__NEW_VALUE: - getNewValue().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) { - switch (featureID) { - case TablemodelPackage.COMPARE_CELL_CONTENT__OLD_VALUE: - return oldValue != null && !oldValue.isEmpty(); - case TablemodelPackage.COMPARE_CELL_CONTENT__NEW_VALUE: - return newValue != null && !newValue.isEmpty(); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() { - if (eIsProxy()) - return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (oldValue: "); - result.append(oldValue); - result.append(", newValue: "); - result.append(newValue); - result.append(')'); - return result.toString(); - } - -} // CompareCellContentImpl diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/CompareStateCellContentImpl.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/CompareStateCellContentImpl.java new file mode 100644 index 0000000000..fcaa5bea05 --- /dev/null +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/CompareStateCellContentImpl.java @@ -0,0 +1,284 @@ +/** + * Copyright (c) 2022 DB Netz AG and others. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v20.html + */ +package org.eclipse.set.model.tablemodel.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.set.model.tablemodel.CellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; +import org.eclipse.set.model.tablemodel.TablemodelPackage; + +/** + * An implementation of the model object 'Compare + * State Cell Content'. + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.set.model.tablemodel.impl.CompareStateCellContentImpl#getOldValue + * Old Value}
  • + *
  • {@link org.eclipse.set.model.tablemodel.impl.CompareStateCellContentImpl#getNewValue + * New Value}
  • + *
+ * + * @generated + */ +public class CompareStateCellContentImpl extends CellContentImpl + implements CompareStateCellContent { + /** + * The cached value of the '{@link #getOldValue() Old Value}' + * containment reference. + * + * @see #getOldValue() + * @generated + * @ordered + */ + protected CellContent oldValue; + + /** + * The cached value of the '{@link #getNewValue() New Value}' + * containment reference. + * + * @see #getNewValue() + * @generated + * @ordered + */ + protected CellContent newValue; + + /** + * + * + * @generated + */ + protected CompareStateCellContentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return TablemodelPackage.Literals.COMPARE_STATE_CELL_CONTENT; + } + + /** + * + * + * @generated + */ + @Override + public CellContent getOldValue() { + return oldValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetOldValue(CellContent newOldValue, + NotificationChain msgs) { + CellContent oldOldValue = oldValue; + oldValue = newOldValue; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + oldOldValue, newOldValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setOldValue(CellContent newOldValue) { + if (newOldValue != oldValue) { + NotificationChain msgs = null; + if (oldValue != null) + msgs = ((InternalEObject) oldValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + null, msgs); + if (newOldValue != null) + msgs = ((InternalEObject) newOldValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + null, msgs); + msgs = basicSetOldValue(newOldValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE, + newOldValue, newOldValue)); + } + + /** + * + * + * @generated + */ + @Override + public CellContent getNewValue() { + return newValue; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetNewValue(CellContent newNewValue, + NotificationChain msgs) { + CellContent oldNewValue = newValue; + newValue = newNewValue; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, + Notification.SET, + TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + oldNewValue, newNewValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + @Override + public void setNewValue(CellContent newNewValue) { + if (newNewValue != newValue) { + NotificationChain msgs = null; + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE + - TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + null, msgs); + if (newNewValue != null) + msgs = ((InternalEObject) newNewValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE + - TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + null, msgs); + msgs = basicSetNewValue(newNewValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE, + newNewValue, newNewValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, + int featureID, NotificationChain msgs) { + switch (featureID) { + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE: + return basicSetOldValue(null, msgs); + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE: + return basicSetNewValue(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE: + return getOldValue(); + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE: + return getNewValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE: + setOldValue((CellContent) newValue); + return; + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE: + setNewValue((CellContent) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE: + setOldValue((CellContent) null); + return; + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE: + setNewValue((CellContent) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__OLD_VALUE: + return oldValue != null; + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT__NEW_VALUE: + return newValue != null; + } + return super.eIsSet(featureID); + } + +} // CompareStateCellContentImpl diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelFactoryImpl.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelFactoryImpl.java index 5884444a05..437c2b1cb4 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelFactoryImpl.java +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelFactoryImpl.java @@ -78,8 +78,8 @@ public EObject create(EClass eClass) { return createTableCell(); case TablemodelPackage.STRING_CELL_CONTENT: return createStringCellContent(); - case TablemodelPackage.COMPARE_CELL_CONTENT: - return createCompareCellContent(); + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT: + return createCompareStateCellContent(); case TablemodelPackage.CELL_ANNOTATION: return createCellAnnotation(); case TablemodelPackage.MULTI_COLOR_CELL_CONTENT: @@ -227,9 +227,9 @@ public StringCellContent createStringCellContent() { * @generated */ @Override - public CompareCellContent createCompareCellContent() { - CompareCellContentImpl compareCellContent = new CompareCellContentImpl(); - return compareCellContent; + public CompareStateCellContent createCompareStateCellContent() { + CompareStateCellContentImpl compareStateCellContent = new CompareStateCellContentImpl(); + return compareStateCellContent; } /** diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelPackageImpl.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelPackageImpl.java index 37e0965751..3b6e398821 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelPackageImpl.java +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/impl/TablemodelPackageImpl.java @@ -22,8 +22,8 @@ import org.eclipse.set.model.tablemodel.CellContent; import org.eclipse.set.model.tablemodel.ColumnDescriptor; import org.eclipse.set.model.tablemodel.ColumnWidthMode; -import org.eclipse.set.model.tablemodel.CompareCellContent; import org.eclipse.set.model.tablemodel.CompareFootnoteContainer; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.CompareTableCellContent; import org.eclipse.set.model.tablemodel.CompareTableFootnoteContainer; import org.eclipse.set.model.tablemodel.FootnoteContainer; @@ -137,7 +137,7 @@ public class TablemodelPackageImpl extends EPackageImpl * * @generated */ - private EClass compareCellContentEClass = null; + private EClass compareStateCellContentEClass = null; /** * @@ -660,8 +660,8 @@ public EAttribute getStringCellContent_Value() { * @generated */ @Override - public EClass getCompareCellContent() { - return compareCellContentEClass; + public EClass getCompareStateCellContent() { + return compareStateCellContentEClass; } /** @@ -670,8 +670,9 @@ public EClass getCompareCellContent() { * @generated */ @Override - public EAttribute getCompareCellContent_OldValue() { - return (EAttribute) compareCellContentEClass.getEStructuralFeatures() + public EReference getCompareStateCellContent_OldValue() { + return (EReference) compareStateCellContentEClass + .getEStructuralFeatures() .get(0); } @@ -681,8 +682,9 @@ public EAttribute getCompareCellContent_OldValue() { * @generated */ @Override - public EAttribute getCompareCellContent_NewValue() { - return (EAttribute) compareCellContentEClass.getEStructuralFeatures() + public EReference getCompareStateCellContent_NewValue() { + return (EReference) compareStateCellContentEClass + .getEStructuralFeatures() .get(1); } @@ -1029,11 +1031,12 @@ public void createPackageContents() { stringCellContentEClass = createEClass(STRING_CELL_CONTENT); createEAttribute(stringCellContentEClass, STRING_CELL_CONTENT__VALUE); - compareCellContentEClass = createEClass(COMPARE_CELL_CONTENT); - createEAttribute(compareCellContentEClass, - COMPARE_CELL_CONTENT__OLD_VALUE); - createEAttribute(compareCellContentEClass, - COMPARE_CELL_CONTENT__NEW_VALUE); + compareStateCellContentEClass = createEClass( + COMPARE_STATE_CELL_CONTENT); + createEReference(compareStateCellContentEClass, + COMPARE_STATE_CELL_CONTENT__OLD_VALUE); + createEReference(compareStateCellContentEClass, + COMPARE_STATE_CELL_CONTENT__NEW_VALUE); cellAnnotationEClass = createEClass(CELL_ANNOTATION); @@ -1123,7 +1126,8 @@ public void initializePackageContents() { // Add supertypes to classes stringCellContentEClass.getESuperTypes().add(this.getCellContent()); - compareCellContentEClass.getESuperTypes().add(this.getCellContent()); + compareStateCellContentEClass.getESuperTypes() + .add(this.getCellContent()); multiColorCellContentEClass.getESuperTypes().add(this.getCellContent()); compareFootnoteContainerEClass.getESuperTypes() .add(this.getFootnoteContainer()); @@ -1268,19 +1272,19 @@ public void initializePackageContents() { !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(compareCellContentEClass, CompareCellContent.class, - "CompareCellContent", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(compareStateCellContentEClass, CompareStateCellContent.class, + "CompareStateCellContent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getCompareCellContent_OldValue(), - ecorePackage.getEString(), "oldValue", null, 0, -1, - CompareCellContent.class, !IS_TRANSIENT, !IS_VOLATILE, - IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEAttribute(getCompareCellContent_NewValue(), - ecorePackage.getEString(), "newValue", null, 0, -1, - CompareCellContent.class, !IS_TRANSIENT, !IS_VOLATILE, - IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); + initEReference(getCompareStateCellContent_OldValue(), + this.getCellContent(), null, "oldValue", null, 0, 1, + CompareStateCellContent.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getCompareStateCellContent_NewValue(), + this.getCellContent(), null, "newValue", null, 0, 1, + CompareStateCellContent.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(cellAnnotationEClass, CellAnnotation.class, "CellAnnotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelAdapterFactory.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelAdapterFactory.java index 2f623acc1b..13dd464f93 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelAdapterFactory.java +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelAdapterFactory.java @@ -113,8 +113,9 @@ public Adapter caseStringCellContent(StringCellContent object) { } @Override - public Adapter caseCompareCellContent(CompareCellContent object) { - return createCompareCellContentAdapter(); + public Adapter caseCompareStateCellContent( + CompareStateCellContent object) { + return createCompareStateCellContentAdapter(); } @Override @@ -312,17 +313,17 @@ public Adapter createStringCellContentAdapter() { /** * Creates a new adapter for an object of class - * '{@link org.eclipse.set.model.tablemodel.CompareCellContent Compare - * Cell Content}'. This default implementation - * returns null so that we can easily ignore cases; it's useful to ignore a - * case when inheritance will catch all the cases anyway. + * '{@link org.eclipse.set.model.tablemodel.CompareStateCellContent + * Compare State Cell Content}'. This + * default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases + * anyway. * * @return the new adapter. - * @see org.eclipse.set.model.tablemodel.CompareCellContent + * @see org.eclipse.set.model.tablemodel.CompareStateCellContent * @generated */ - public Adapter createCompareCellContentAdapter() { + public Adapter createCompareStateCellContentAdapter() { return null; } diff --git a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelSwitch.java b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelSwitch.java index 45dbf8f717..09cdbf68aa 100644 --- a/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelSwitch.java +++ b/java/bundles/org.eclipse.set.model.tablemodel/src/org/eclipse/set/model/tablemodel/util/TablemodelSwitch.java @@ -130,11 +130,11 @@ protected T doSwitch(int classifierID, EObject theEObject) { result = defaultCase(theEObject); return result; } - case TablemodelPackage.COMPARE_CELL_CONTENT: { - CompareCellContent compareCellContent = (CompareCellContent) theEObject; - T result = caseCompareCellContent(compareCellContent); + case TablemodelPackage.COMPARE_STATE_CELL_CONTENT: { + CompareStateCellContent compareStateCellContent = (CompareStateCellContent) theEObject; + T result = caseCompareStateCellContent(compareStateCellContent); if (result == null) - result = caseCellContent(compareCellContent); + result = caseCellContent(compareStateCellContent); if (result == null) result = defaultCase(theEObject); return result; @@ -360,18 +360,18 @@ public T caseStringCellContent(StringCellContent object) { /** * Returns the result of interpreting the object as an instance of - * 'Compare Cell Content'. This + * 'Compare State Cell Content'. This * implementation returns null; returning a non-null result will terminate * the switch. * * @param object * the target of the switch. * @return the result of interpreting the object as an instance of - * 'Compare Cell Content'. + * 'Compare State Cell Content'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseCompareCellContent(CompareCellContent object) { + public T caseCompareStateCellContent(CompareStateCellContent object) { return null; } 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/StellBereichExtensions.java b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/StellBereichExtensions.java index f4ca87f94a..e202802410 100644 --- a/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/StellBereichExtensions.java +++ b/java/bundles/org.eclipse.set.ppmodel.extensions/src/org/eclipse/set/ppmodel/extensions/StellBereichExtensions.java @@ -30,8 +30,8 @@ import org.eclipse.set.model.planpro.Ansteuerung_Element.Uebertragungsweg; 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; import org.eclipse.set.model.planpro.Basisobjekte.Bereich_Objekt; +import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt; import org.eclipse.set.model.planpro.Bedienung.Bedien_Bezirk; import org.eclipse.set.model.planpro.Bedienung.Bedien_Einrichtung_Oertlich; import org.eclipse.set.model.planpro.Bedienung.Bedien_Standort; @@ -206,7 +206,7 @@ public static List getWkrGspElement( * @return true, if the element belong to the area */ public static boolean isInControlArea(final Stell_Bereich area, - final Basis_Objekt object) { + final Ur_Objekt object) { if (object == null) { return false; } 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 3c55891539..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,15 +10,16 @@ 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.Basis_Objekt import org.eclipse.set.model.planpro.Basisobjekte.Ur_Objekt 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.* -import org.eclipse.set.utils.ToolboxConfiguration /** * Diese Klasse erweitert {@link Ur_Objekt}. @@ -36,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) } @@ -97,7 +100,7 @@ class UrObjectExtensions extends BasisAttributExtensions { return planData.exists[wert == guid] } - def static Iterable filterObjectsInControlArea( + def static Iterable filterObjectsInControlArea( Iterable objects, Stell_Bereich area) { if (area === null) { return objects @@ -105,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..4de9b04d9c 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; @@ -92,14 +91,25 @@ public Comparator getRowGroupComparator() { .build(); } + // @Override + // public Table transform(final T model, final Stell_Bereich controlArea) { + // final Table table = TablemodelFactory.eINSTANCE.createTable(); + // buildHeading(table); + // transformator = createTransformator(); + // transformator.transformTableContent(model, new TMFactory(table), + // controlArea); + // // Fill blank value to cell + // + // setColumnTextAlignment(table); + // return table; + // } + @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 +121,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/TableModelInstanceBodyDataProvider.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java index 3133a9596e..27a0f48eb2 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableModelInstanceBodyDataProvider.java @@ -28,7 +28,7 @@ import org.eclipse.set.core.services.session.SessionService; import org.eclipse.set.model.planpro.PlanPro.PlanPro_Schnittstelle; import org.eclipse.set.model.tablemodel.CellContent; -import org.eclipse.set.model.tablemodel.CompareCellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.CompareTableCellContent; import org.eclipse.set.model.tablemodel.StringCellContent; import org.eclipse.set.model.tablemodel.TableCell; @@ -36,6 +36,7 @@ import org.eclipse.set.model.tablemodel.TablemodelFactory; import org.eclipse.set.model.tablemodel.extensions.CellContentExtensions; import org.eclipse.set.model.tablemodel.extensions.TableRowExtensions; +import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -177,7 +178,7 @@ private CellContent getNewContent(final CellContent oldContent, return switch (oldContent) { case final StringCellContent stringContent -> getNewContent( stringContent, properties); - case final CompareCellContent compareContent -> getNewContent( + case final CompareStateCellContent compareContent -> getNewContent( compareContent, properties); case final CompareTableCellContent compareTableContent -> getNewContent( compareTableContent, properties); @@ -212,24 +213,27 @@ private static CellContent getNewContent(final StringCellContent oldContent, } private static CellContent getNewContent( - final CompareCellContent oldContent, + final CompareStateCellContent oldContent, final Pt1TableChangeProperties properties) { final ContainerType containerType = properties.getContainerType(); + final List oldValues = IterableExtensions + .toList(CellContentExtensions + .getStringValueIterable(oldContent.getOldValue())); + final List newValues = IterableExtensions + .toList(CellContentExtensions + .getStringValueIterable(oldContent.getNewValue())); switch (containerType) { case FINAL: - if (!equalsValues(oldContent.getNewValue(), - properties.getNewValues())) { - return createCompareCellContent(oldContent.getOldValue(), + if (!equalsValues(newValues, properties.getNewValues())) { + return createCompareCellContent(oldValues, properties.getNewValues(), oldContent.getSeparator()); } break; case INITIAL: - if (!equalsValues(oldContent.getOldValue(), - properties.getNewValues())) { + if (!equalsValues(newValues, properties.getNewValues())) { return createCompareCellContent(properties.getNewValues(), - oldContent.getNewValue(), - oldContent.getSeparator()); + newValues, oldContent.getSeparator()); } break; default: @@ -286,13 +290,15 @@ private CellContent getNewContent(final CompareTableCellContent oldContent, : clone; } - private static CompareCellContent createCompareCellContent( + private static CompareStateCellContent createCompareCellContent( final List oldValues, final List newValues, final String separator) { - final CompareCellContent compareContent = TablemodelFactory.eINSTANCE - .createCompareCellContent(); - compareContent.getOldValue().addAll(oldValues); - compareContent.getNewValue().addAll(newValues); + final CompareStateCellContent compareContent = TablemodelFactory.eINSTANCE + .createCompareStateCellContent(); + compareContent.setOldValue( + CellContentExtensions.createStringCellContent(oldValues)); + compareContent.setNewValue( + CellContentExtensions.createStringCellContent(newValues)); compareContent.setSeparator(separator); return compareContent; } 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/TableSpanUtils.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableSpanUtils.java index 1ce2d4ea77..3b699cfdc3 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableSpanUtils.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/TableSpanUtils.java @@ -8,17 +8,21 @@ */ package org.eclipse.set.utils.table; +import static org.eclipse.set.model.tablemodel.extensions.CellContentExtensions.getStringValueIterable; + import java.util.List; import org.eclipse.set.model.tablemodel.CellContent; import org.eclipse.set.model.tablemodel.ColumnDescriptor; -import org.eclipse.set.model.tablemodel.CompareCellContent; +import org.eclipse.set.model.tablemodel.CompareStateCellContent; import org.eclipse.set.model.tablemodel.RowMergeMode; import org.eclipse.set.model.tablemodel.StringCellContent; import org.eclipse.set.model.tablemodel.TableRow; import org.eclipse.set.model.tablemodel.extensions.CellContentExtensions; import org.eclipse.set.model.tablemodel.extensions.TableRowExtensions; +import com.google.common.collect.Streams; + /** * Helper class to calculate table spans * @@ -100,7 +104,7 @@ private static boolean isEqual(final CellContent cellContentA, return switch (cellContentA) { case final StringCellContent stringCellContentA -> isEqual( stringCellContentA, cellContentB); - case final CompareCellContent compareCellContentA -> isEqual( + case final CompareStateCellContent compareCellContentA -> isEqual( compareCellContentA, cellContentB); default -> CellContentExtensions.isEqual(cellContentA, cellContentB); @@ -115,16 +119,16 @@ private static boolean isEqual(final StringCellContent stringCellContentA, // compare cell content with the another cell. Because when the row // in Final was removed/added will be COmpareCellContent and by // normal compare the row can't be merged - case final CompareCellContent compareCellContentB -> { - final List oldValuesB = compareCellContentB - .getOldValue() - .stream() + case final CompareStateCellContent compareCellContentB -> { + final List oldValuesB = Streams + .stream(getStringValueIterable( + compareCellContentB.getOldValue())) .map(String::trim) .filter(v -> !v.isEmpty() && !v.isBlank()) .toList(); - final List newValuesB = compareCellContentB - .getNewValue() - .stream() + final List newValuesB = Streams + .stream(getStringValueIterable( + compareCellContentB.getNewValue())) .map(String::trim) .filter(v -> !v.isEmpty() && !v.isBlank()) .toList(); @@ -139,7 +143,8 @@ private static boolean isEqual(final StringCellContent stringCellContentA, }; } - private static boolean isEqual(final CompareCellContent compareCellContentA, + private static boolean isEqual( + final CompareStateCellContent compareCellContentA, final CellContent cellContentB) { return switch (cellContentB) { case final StringCellContent stringCellContentB -> isEqual( 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/sorting/AbstractCellComparator.xtend b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/AbstractCellComparator.xtend index 89737e4f9c..8d76063f78 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/AbstractCellComparator.xtend +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/AbstractCellComparator.xtend @@ -12,7 +12,7 @@ import java.util.Comparator import java.util.List import org.eclipse.nebula.widgets.nattable.sort.SortDirectionEnum import org.eclipse.set.model.tablemodel.CellContent -import org.eclipse.set.model.tablemodel.CompareCellContent +import org.eclipse.set.model.tablemodel.CompareStateCellContent import org.eclipse.set.model.tablemodel.StringCellContent import org.eclipse.set.model.tablemodel.TableCell @@ -61,8 +61,8 @@ package abstract class AbstractCellComparator implements Comparator { } private def dispatch int compareDispatch( - CompareCellContent c1, - CompareCellContent c2 + CompareStateCellContent c1, + CompareStateCellContent c2 ) { // To avoid compare error, the compare cell shouldn't separate compare new/old value return c1.compareCellContentString.compareCell( @@ -79,13 +79,13 @@ package abstract class AbstractCellComparator implements Comparator { private def dispatch int compareDispatch( StringCellContent c1, - CompareCellContent c2 + CompareStateCellContent c2 ) { return c1.value.compareCell(c2.compareCellContentString) } private def dispatch int compareDispatch( - CompareCellContent c1, + CompareStateCellContent c1, StringCellContent c2 ) { return c1.compareCellContentString.compareCell(c2.value) @@ -107,8 +107,9 @@ package abstract class AbstractCellComparator implements Comparator { } private def Iterable compareCellContentString( - CompareCellContent content) { - return #[content.newValue, content.oldValue].flatten.toSet + CompareStateCellContent content) { + return #[content.newValue.stringValueIterable, + content.oldValue.stringValueIterable].flatten.toSet } private def boolean isInteger(String text) { 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,