From 0df1b680caf359b48e57aad674eaeb6907739678 Mon Sep 17 00:00:00 2001
From: Quang Truong
Date: Wed, 8 Apr 2026 14:44:36 +0200
Subject: [PATCH 01/13] Initial
---
.../DefaultValueServiceImpl.xtend | 12 +-
.../set/basis/constants/ToolboxConstants.java | 5 +
.../version/PlanProVersionService.java | 19 +-
.../MockPlanProVersionService.java | 5 +-
.../core/fileservice/PlanProXMLHelper.java | 24 +-
.../version/PlanProVersionServiceImpl.java | 51 +++-
.../set/emfforms/text/TextFieldRenderer.java | 9 +-
.../parts/ValidationInformationView.java | 18 ++
...sionToValidationReportTransformation.xtend | 2 +-
.../META-INF/MANIFEST.MF | 2 +-
.../plugin.properties | 2 +
.../provider/VersionInfoItemProvider.java | 43 ++-
.../META-INF/MANIFEST.MF | 2 +-
.../model/validationreport.ecore | 6 +-
.../model/validationreport.genmodel | 4 +-
.../ValidationreportPackage.java | 55 ++--
.../model/validationreport/VersionInfo.java | 70 ++---
.../impl/ValidationreportPackageImpl.java | 26 +-
.../impl/VersionInfoImpl.java | 149 ++++------
...9e3f3f6b1a623a57a95200e18adee8e4b8640.webm | Bin 0 -> 98577 bytes
...f4287fd6a42ecb506817986a2078981527a66d2.md | 114 ++++++++
...3a120df1f85529a5c58bb69af45e586d4f61f4a.md | 96 +++++++
...7b75d473d7a46131594ae83cbbbbd64510b90e.png | Bin 0 -> 82615 bytes
...83a532173927c49da66c94eda55f633eff00a82.md | 110 ++++++++
...25054651e2c401b066449ef34148c0e377f22.webm | Bin 0 -> 139169 bytes
...97a987b5e156907ea3400ddaceadfc5994d9f4.png | Bin 0 -> 82507 bytes
...3ddc8566b9dbd6714daca20931e5d48f1d65c.webm | Bin 0 -> 66266 bytes
...448b4b46c5239b73d344759b99f52b8ee6fd19.png | Bin 0 -> 36630 bytes
...8d51f4e4b1f63134893ba115f6951bfa338f03.png | Bin 0 -> 78611 bytes
web/siteplan/playwright-report/index.html | 90 ++++++
.../trace/assets/codeMirrorModule-DS0FLvoc.js | 32 +++
.../assets/defaultSettingsView-GTWI-W_B.js | 262 ++++++++++++++++++
.../trace/codeMirrorModule.DYBRYzYX.css | 1 +
.../trace/codicon.DCmgc-ay.ttf | Bin 0 -> 80340 bytes
.../trace/defaultSettingsView.B4dS75f0.css | 1 +
.../playwright-report/trace/index.C5466mMT.js | 2 +
.../trace/index.CzXZzn5A.css | 1 +
.../playwright-report/trace/index.html | 43 +++
.../trace/manifest.webmanifest | 16 ++
.../trace/playwright-logo.svg | 9 +
.../playwright-report/trace/snapshot.html | 21 ++
.../playwright-report/trace/sw.bundle.js | 5 +
.../trace/uiMode.Btcz36p_.css | 1 +
.../trace/uiMode.Vipi55dB.js | 6 +
.../playwright-report/trace/uiMode.html | 17 ++
.../trace/xtermModule.DYP7pi_n.css | 32 +++
web/siteplan/test-results/.last-run.json | 8 +
.../error-context.md | 110 ++++++++
.../pphn-initial-view-actual.png | Bin 0 -> 82507 bytes
.../pphn-initial-loading-chromium/video.webm | Bin 0 -> 66266 bytes
.../error-context.md | 96 +++++++
.../pphn-no-development-mode-actual.png | Bin 0 -> 78611 bytes
.../video.webm | Bin 0 -> 98577 bytes
.../error-context.md | 114 ++++++++
.../pphn-initial-view-actual.png | Bin 0 -> 82615 bytes
.../pphn-total-view-actual.png | Bin 0 -> 36630 bytes
.../video.webm | Bin 0 -> 139169 bytes
57 files changed, 1442 insertions(+), 249 deletions(-)
create mode 100644 java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationInformationView.java
create mode 100644 web/siteplan/playwright-report/data/01f9e3f3f6b1a623a57a95200e18adee8e4b8640.webm
create mode 100644 web/siteplan/playwright-report/data/5f4287fd6a42ecb506817986a2078981527a66d2.md
create mode 100644 web/siteplan/playwright-report/data/63a120df1f85529a5c58bb69af45e586d4f61f4a.md
create mode 100644 web/siteplan/playwright-report/data/807b75d473d7a46131594ae83cbbbbd64510b90e.png
create mode 100644 web/siteplan/playwright-report/data/a83a532173927c49da66c94eda55f633eff00a82.md
create mode 100644 web/siteplan/playwright-report/data/a9425054651e2c401b066449ef34148c0e377f22.webm
create mode 100644 web/siteplan/playwright-report/data/ae97a987b5e156907ea3400ddaceadfc5994d9f4.png
create mode 100644 web/siteplan/playwright-report/data/c683ddc8566b9dbd6714daca20931e5d48f1d65c.webm
create mode 100644 web/siteplan/playwright-report/data/d4448b4b46c5239b73d344759b99f52b8ee6fd19.png
create mode 100644 web/siteplan/playwright-report/data/db8d51f4e4b1f63134893ba115f6951bfa338f03.png
create mode 100644 web/siteplan/playwright-report/index.html
create mode 100644 web/siteplan/playwright-report/trace/assets/codeMirrorModule-DS0FLvoc.js
create mode 100644 web/siteplan/playwright-report/trace/assets/defaultSettingsView-GTWI-W_B.js
create mode 100644 web/siteplan/playwright-report/trace/codeMirrorModule.DYBRYzYX.css
create mode 100644 web/siteplan/playwright-report/trace/codicon.DCmgc-ay.ttf
create mode 100644 web/siteplan/playwright-report/trace/defaultSettingsView.B4dS75f0.css
create mode 100644 web/siteplan/playwright-report/trace/index.C5466mMT.js
create mode 100644 web/siteplan/playwright-report/trace/index.CzXZzn5A.css
create mode 100644 web/siteplan/playwright-report/trace/index.html
create mode 100644 web/siteplan/playwright-report/trace/manifest.webmanifest
create mode 100644 web/siteplan/playwright-report/trace/playwright-logo.svg
create mode 100644 web/siteplan/playwright-report/trace/snapshot.html
create mode 100644 web/siteplan/playwright-report/trace/sw.bundle.js
create mode 100644 web/siteplan/playwright-report/trace/uiMode.Btcz36p_.css
create mode 100644 web/siteplan/playwright-report/trace/uiMode.Vipi55dB.js
create mode 100644 web/siteplan/playwright-report/trace/uiMode.html
create mode 100644 web/siteplan/playwright-report/trace/xtermModule.DYP7pi_n.css
create mode 100644 web/siteplan/test-results/.last-run.json
create mode 100644 web/siteplan/test-results/pphn-initial-loading-chromium/error-context.md
create mode 100644 web/siteplan/test-results/pphn-initial-loading-chromium/pphn-initial-view-actual.png
create mode 100644 web/siteplan/test-results/pphn-initial-loading-chromium/video.webm
create mode 100644 web/siteplan/test-results/pphn-no-development-mode-chromium/error-context.md
create mode 100644 web/siteplan/test-results/pphn-no-development-mode-chromium/pphn-no-development-mode-actual.png
create mode 100644 web/siteplan/test-results/pphn-no-development-mode-chromium/video.webm
create mode 100644 web/siteplan/test-results/pphn-total-view-displaying-chromium/error-context.md
create mode 100644 web/siteplan/test-results/pphn-total-view-displaying-chromium/pphn-initial-view-actual.png
create mode 100644 web/siteplan/test-results/pphn-total-view-displaying-chromium/pphn-total-view-actual.png
create mode 100644 web/siteplan/test-results/pphn-total-view-displaying-chromium/video.webm
diff --git a/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/defaultvalue/DefaultValueServiceImpl.xtend b/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/defaultvalue/DefaultValueServiceImpl.xtend
index bff3610d5c..3dc05a0d5f 100644
--- a/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/defaultvalue/DefaultValueServiceImpl.xtend
+++ b/java/bundles/org.eclipse.set.application/src/org/eclipse/set/application/defaultvalue/DefaultValueServiceImpl.xtend
@@ -8,17 +8,17 @@
*/
package org.eclipse.set.application.defaultvalue
-import org.eclipse.set.model.planpro.PlanPro.ENUMUntergewerkArt
-import org.eclipse.set.model.planpro.PlanPro.PlanProFactory
-import org.eclipse.set.model.planpro.PlanPro.PlanPro_Schnittstelle
import jakarta.inject.Inject
import org.eclipse.core.runtime.Assert
import org.eclipse.set.core.services.defaultvalue.DefaultValueService
import org.eclipse.set.core.services.version.PlanProVersionService
+import org.eclipse.set.model.planpro.PlanPro.ENUMUntergewerkArt
+import org.eclipse.set.model.planpro.PlanPro.PlanProFactory
+import org.eclipse.set.model.planpro.PlanPro.PlanPro_Schnittstelle
import static extension org.eclipse.set.ppmodel.extensions.PlanProSchnittstelleExtensions.*
-import static extension org.eclipse.set.ppmodel.extensions.PlanungProjektExtensions.*
import static extension org.eclipse.set.ppmodel.extensions.PlanungEinzelExtensions.*
+import static extension org.eclipse.set.ppmodel.extensions.PlanungProjektExtensions.*
/**
* Implementation of {@link DefaultValueService}.
@@ -94,8 +94,8 @@ class DefaultValueServiceImpl implements DefaultValueService {
}
if (planungGAllg.planProXSDVersion.wert === null) {
- val versionInfo = versionService.createSupportedVersion()
- planungGAllg.planProXSDVersion.wert = versionInfo.planPro
+ val versionInfo = versionService.getCurrentVersion()
+ planungGAllg.planProXSDVersion.wert = versionInfo.planProVersions.head
}
if (planungGAllg.untergewerkArt === null) {
diff --git a/java/bundles/org.eclipse.set.basis/src/org/eclipse/set/basis/constants/ToolboxConstants.java b/java/bundles/org.eclipse.set.basis/src/org/eclipse/set/basis/constants/ToolboxConstants.java
index 528b40dd93..e9d0ed9c14 100644
--- a/java/bundles/org.eclipse.set.basis/src/org/eclipse/set/basis/constants/ToolboxConstants.java
+++ b/java/bundles/org.eclipse.set.basis/src/org/eclipse/set/basis/constants/ToolboxConstants.java
@@ -390,6 +390,11 @@ public interface CacheId {
*/
public static final double TOP_GEO_LENGTH_TOLERANCE = 0.01;
+ /**
+ * The separator for supported PlanPro, Signalbegriffe_Ril301 versions
+ */
+ public static final String VERSION_SEPARATOR = ", ";
+
/**
* The tolerance value between the Begrenzungen of a Teilbereich and its
* associated TOP_KANTE
diff --git a/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/version/PlanProVersionService.java b/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/version/PlanProVersionService.java
index 5a4359b596..0985e31bf5 100644
--- a/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/version/PlanProVersionService.java
+++ b/java/bundles/org.eclipse.set.core.services/src/org/eclipse/set/core/services/version/PlanProVersionService.java
@@ -45,6 +45,11 @@ public String getFullVersion() {
return String.format("%s.%s.%s", major, patch, minor); //$NON-NLS-1$
}
+ /**
+ * @param another
+ * the another version format
+ * @return true, if same
+ */
public int compare(final PlanProVersionFormat another) {
if (!major.equals(another.major)) {
return major.compareToIgnoreCase(another.major);
@@ -65,7 +70,7 @@ public int compare(final PlanProVersionFormat another) {
/**
* @return the supported PlanPro version
*/
- public VersionInfo createSupportedVersion();
+ public VersionInfo getSupportedVersions();
/**
* @return the supported PlanPro version format
@@ -81,7 +86,15 @@ public int compare(final PlanProVersionFormat another) {
public VersionInfo createUsedVersion(Path location);
/**
- * @return the current PlanPro version
+ * @return the version info with actual PlanPro and Signalbegriff_Ril301
+ * version
+ */
+ public VersionInfo getCurrentVersion();
+
+ /**
+ * @param uri
+ * the used version in loaded file
+ * @return true, if this version was supported
*/
- public String getCurrentVersion();
+ public boolean isSupportedVersion(String uri);
}
diff --git a/java/bundles/org.eclipse.set.core.test/src/org/eclipse/set/core/fileservice/MockPlanProVersionService.java b/java/bundles/org.eclipse.set.core.test/src/org/eclipse/set/core/fileservice/MockPlanProVersionService.java
index 4af702ebc5..703d0ef85e 100644
--- a/java/bundles/org.eclipse.set.core.test/src/org/eclipse/set/core/fileservice/MockPlanProVersionService.java
+++ b/java/bundles/org.eclipse.set.core.test/src/org/eclipse/set/core/fileservice/MockPlanProVersionService.java
@@ -36,8 +36,9 @@ public static void mockPlanProVersionService(final ThrowingRunnable doTest)
throws Throwable {
final PlanProVersionService mockVersionService = Mockito
.mock(PlanProVersionService.class);
- Mockito.when(mockVersionService.getCurrentVersion())
- .thenReturn(currentVersion.getFullVersion());
+ Mockito.when(mockVersionService.getCurrentVersion()
+ .getPlanProVersions()
+ .getFirst()).thenReturn(currentVersion.getFullVersion());
Mockito.when(mockVersionService.getSupportedVersionFormat())
.thenReturn(currentVersion);
try (MockedStatic mockStatic = Mockito
diff --git a/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/fileservice/PlanProXMLHelper.java b/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/fileservice/PlanProXMLHelper.java
index f2339ba4b4..e756b34eb9 100644
--- a/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/fileservice/PlanProXMLHelper.java
+++ b/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/fileservice/PlanProXMLHelper.java
@@ -13,6 +13,7 @@
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl;
import org.eclipse.set.core.services.version.PlanProVersionService;
+import org.eclipse.set.model.validationreport.VersionInfo;
/**
* Make the old minor version compatible
@@ -21,7 +22,8 @@
*/
public class PlanProXMLHelper extends XMLHelperImpl {
- private static final String PLANPRO_URI_PREFIX = "http://www.plan-pro.org/modell/"; //$NON-NLS-1$
+ private static final String PLANPRO_URI_PREFIX = "http://www.plan-pro.org/modell/Planpro"; //$NON-NLS-1$
+ private static final String SIGNALBEGRIFF_RIL_URI_PREFIX = "http://www.plan-pro.org/modell/Signalbegriffe_Ril_301"; //$NON-NLS-1$
private final PlanProVersionService versionService;
private static String parseVersion(final String uri) {
@@ -42,21 +44,23 @@ public PlanProXMLHelper(final XMLResource resource,
@Override
public void addPrefix(final String prefix, final String uri) {
- if (!uri.startsWith(PLANPRO_URI_PREFIX)
- || parseVersion(uri).equals(versionService.getCurrentVersion())
- || !parseVersion(uri)
- .startsWith(versionService.getSupportedVersionFormat()
- .getMajorPatchVersion())) {
+ if (!versionService.isSupportedVersion(uri)) {
super.addPrefix(prefix, uri);
return;
}
// When the version isn't equal current version, but this version is
// supported then replace the version part in uri to current version
- final String version = parseVersion(uri);
- final String newUri = uri.replace(version,
- versionService.getCurrentVersion());
+ final VersionInfo currentVersion = versionService.getCurrentVersion();
+ String newUri = uri;
+ final String loadedVersion = parseVersion(uri);
+ if (uri.startsWith(PLANPRO_URI_PREFIX)) {
+ newUri = uri.replace(loadedVersion,
+ currentVersion.getPlanProVersions().getFirst());
+ } else if (uri.startsWith(SIGNALBEGRIFF_RIL_URI_PREFIX)) {
+ newUri = uri.replace(loadedVersion,
+ currentVersion.getSignalbegriffeVersions().getFirst());
+ }
super.addPrefix(prefix, newUri);
-
}
}
diff --git a/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/version/PlanProVersionServiceImpl.java b/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/version/PlanProVersionServiceImpl.java
index ebbbbc053b..28455a30f3 100644
--- a/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/version/PlanProVersionServiceImpl.java
+++ b/java/bundles/org.eclipse.set.core/src/org/eclipse/set/core/version/PlanProVersionServiceImpl.java
@@ -43,8 +43,6 @@ public class PlanProVersionServiceImpl implements PlanProVersionService {
private static final String VERSION_FORMAT = "(?[1-9]+\\.[0-9]+)\\.(?[0-9]+)(\\.(?[0-9]))*"; //$NON-NLS-1$
- private static final String VERSION_SEPARATOR = ", "; //$NON-NLS-1$
-
@Activate
private void active() {
Services.setPlanProVersionService(this);
@@ -91,20 +89,21 @@ private static PlanProVersionFormat parseVersionFormat(
}
@Override
- public VersionInfo createSupportedVersion() {
+ public VersionInfo getSupportedVersions() {
final VersionInfo versionInfo = ValidationreportFactory.eINSTANCE
.createVersionInfo();
- final String modelVersionsSupported = getSupportedVersions(
+ final List modelVersionsSupported = getSupportedVersions(
PlanProPackage.eNAME);
- versionInfo.setPlanPro(modelVersionsSupported);
- final String signalbegriffSupportedVersion = getSupportedVersions(
+ versionInfo.getPlanProVersions().addAll(modelVersionsSupported);
+ final List signalbegriffSupportedVersion = getSupportedVersions(
Signalbegriffe_Ril_301Package.eNAME);
- versionInfo.setSignals(signalbegriffSupportedVersion);
+ versionInfo.getSignalbegriffeVersions()
+ .addAll(signalbegriffSupportedVersion);
return versionInfo;
}
- private static String getSupportedVersions(final String packageName) {
+ private static List getSupportedVersions(final String packageName) {
return PlanProSchemaDir.getSchemaPaths()
.stream()
.filter(p -> p.getFileName()
@@ -122,7 +121,7 @@ private static String getSupportedVersions(final String packageName) {
second);
return firstVersion.compare(secondVersion);
})
- .collect(Collectors.joining(VERSION_SEPARATOR));
+ .toList();
}
@Override
@@ -134,8 +133,10 @@ public VersionInfo createUsedVersion(final Path location) {
final String planProVersion = parseVersion(text, PLAN_PRO_KEY);
- versionInfo.setPlanPro(planProVersion != null ? planProVersion : ""); //$NON-NLS-1$
- versionInfo.setSignals(parseVersion(text, SIGNALS_KEY));
+ versionInfo.getPlanProVersions()
+ .add(planProVersion != null ? planProVersion : ""); //$NON-NLS-1$
+ versionInfo.getSignalbegriffeVersions()
+ .add(parseVersion(text, SIGNALS_KEY));
return versionInfo;
}
@@ -146,7 +147,31 @@ public PlanProVersionFormat getSupportedVersionFormat() {
}
@Override
- public String getCurrentVersion() {
- return PlanProPackageExtensions.getModelVersion();
+ public VersionInfo getCurrentVersion() {
+ final VersionInfo versionInfo = ValidationreportFactory.eINSTANCE
+ .createVersionInfo();
+ final String planProVersion = parseVersion(PlanProPackage.eNS_URI,
+ PLAN_PRO_KEY);
+ versionInfo.getPlanProVersions().add(planProVersion);
+
+ final String signalBegriffeVersion = parseVersion(
+ Signalbegriffe_Ril_301Package.eNS_URI, SIGNALS_KEY);
+ versionInfo.getSignalbegriffeVersions().add(signalBegriffeVersion);
+ return versionInfo;
+ }
+
+ @Override
+ public boolean isSupportedVersion(final String uri) {
+ final VersionInfo supportedVersions = getSupportedVersions();
+ if (uri.startsWith(PLAN_PRO_KEY)) {
+ return supportedVersions.getPlanProVersions()
+ .contains(parseVersion(uri, PLAN_PRO_KEY));
+ }
+
+ if (uri.startsWith(SIGNALS_KEY)) {
+ return supportedVersions.getPlanProVersions()
+ .contains(parseVersion(uri, SIGNALS_KEY));
+ }
+ return false;
}
}
diff --git a/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/TextFieldRenderer.java b/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/TextFieldRenderer.java
index 08f476706b..34e485ee8a 100644
--- a/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/TextFieldRenderer.java
+++ b/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/TextFieldRenderer.java
@@ -8,8 +8,6 @@
*/
package org.eclipse.set.emfforms.text;
-import jakarta.inject.Inject;
-
import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
import org.eclipse.emf.ecp.view.spi.core.swt.renderer.TextControlSWTRenderer;
import org.eclipse.emf.ecp.view.spi.model.VControl;
@@ -23,6 +21,8 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import jakarta.inject.Inject;
+
/**
* Renders texts in multiline field
*
@@ -79,9 +79,8 @@ protected Control createSWTControl(final Composite parent) {
@Override
protected int getTextWidgetStyle() {
- final int textStyle = SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL
- | SWT.BORDER | getDefaultAlignment();
- return textStyle;
+ return SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER
+ | getDefaultAlignment();
}
}
diff --git a/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationInformationView.java b/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationInformationView.java
new file mode 100644
index 0000000000..7ff03e8bdf
--- /dev/null
+++ b/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationInformationView.java
@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2026 DB InfraGO AG and others
+ *
+ * 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
+ *
+ */
+package org.eclipse.set.feature.validation.parts;
+
+/**
+ *
+ */
+public class ValidationInformationView {
+
+}
diff --git a/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/report/SessionToValidationReportTransformation.xtend b/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/report/SessionToValidationReportTransformation.xtend
index 0c1125cab6..ca507238b4 100644
--- a/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/report/SessionToValidationReportTransformation.xtend
+++ b/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/report/SessionToValidationReportTransformation.xtend
@@ -170,7 +170,7 @@ class SessionToValidationReportTransformation {
transform
report.supportedVersion = report.supportedVersion ?:
- versionService.createSupportedVersion
+ versionService.supportedVersions
report.toolboxVersion = ToolboxConfiguration.toolboxVersion.longVersion
}
diff --git a/java/bundles/org.eclipse.set.model.validationreport.edit/META-INF/MANIFEST.MF b/java/bundles/org.eclipse.set.model.validationreport.edit/META-INF/MANIFEST.MF
index c7c7cb5477..f88fa61082 100644
--- a/java/bundles/org.eclipse.set.model.validationreport.edit/META-INF/MANIFEST.MF
+++ b/java/bundles/org.eclipse.set.model.validationreport.edit/META-INF/MANIFEST.MF
@@ -8,7 +8,7 @@ Bundle-ClassPath: .
Bundle-Activator: org.eclipse.set.model.validationreport.provider.ValidationreportEditPlugin$Implementation
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-21
+Bundle-RequiredExecutionEnvironment: JavaSE-17
Export-Package: org.eclipse.set.model.validationreport.provider
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.set.model.validationreport;visibility:=reexport,
diff --git a/java/bundles/org.eclipse.set.model.validationreport.edit/plugin.properties b/java/bundles/org.eclipse.set.model.validationreport.edit/plugin.properties
index b2c74d1471..eee3185482 100644
--- a/java/bundles/org.eclipse.set.model.validationreport.edit/plugin.properties
+++ b/java/bundles/org.eclipse.set.model.validationreport.edit/plugin.properties
@@ -72,3 +72,5 @@ _UI_ObjectState_NONE_literal = Keine
_UI_ObjectScope_Layout_literal = Layout
_UI_ObjectScope_Content_literal = Fachdaten
+_UI_VersionInfo_planProVersions_feature = Plan Pro Versions
+_UI_VersionInfo_signalbegriffeVersions_feature = Signalbegriffe Versions
diff --git a/java/bundles/org.eclipse.set.model.validationreport.edit/src/org/eclipse/set/model/validationreport/provider/VersionInfoItemProvider.java b/java/bundles/org.eclipse.set.model.validationreport.edit/src/org/eclipse/set/model/validationreport/provider/VersionInfoItemProvider.java
index 9df5b708d0..2702f3d679 100644
--- a/java/bundles/org.eclipse.set.model.validationreport.edit/src/org/eclipse/set/model/validationreport/provider/VersionInfoItemProvider.java
+++ b/java/bundles/org.eclipse.set.model.validationreport.edit/src/org/eclipse/set/model/validationreport/provider/VersionInfoItemProvider.java
@@ -61,50 +61,50 @@ public List getPropertyDescriptors(Object object) {
if (itemPropertyDescriptors == null) {
super.getPropertyDescriptors(object);
- addPlanProPropertyDescriptor(object);
- addSignalsPropertyDescriptor(object);
+ addPlanProVersionsPropertyDescriptor(object);
+ addSignalbegriffeVersionsPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
/**
- * This adds a property descriptor for the Plan Pro feature.
*
* @generated
*/
- protected void addPlanProPropertyDescriptor(Object object) {
+ protected void addPlanProVersionsPropertyDescriptor(Object object) {
itemPropertyDescriptors.add(createItemPropertyDescriptor(
((ComposeableAdapterFactory) adapterFactory)
.getRootAdapterFactory(),
getResourceLocator(),
- getString("_UI_VersionInfo_planPro_feature"),
+ getString("_UI_VersionInfo_planProVersions_feature"),
getString("_UI_PropertyDescriptor_description",
- "_UI_VersionInfo_planPro_feature",
+ "_UI_VersionInfo_planProVersions_feature",
"_UI_VersionInfo_type"),
- ValidationreportPackage.Literals.VERSION_INFO__PLAN_PRO, true,
- false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null,
- null));
+ ValidationreportPackage.Literals.VERSION_INFO__PLAN_PRO_VERSIONS,
+ true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null, null));
}
/**
- * This adds a property descriptor for the Signals feature.
+ * This adds a property descriptor for the Signalbegriffe Versions feature.
+ *
*
* @generated
*/
- protected void addSignalsPropertyDescriptor(Object object) {
+ protected void addSignalbegriffeVersionsPropertyDescriptor(Object object) {
itemPropertyDescriptors.add(createItemPropertyDescriptor(
((ComposeableAdapterFactory) adapterFactory)
.getRootAdapterFactory(),
getResourceLocator(),
- getString("_UI_VersionInfo_signals_feature"),
+ getString("_UI_VersionInfo_signalbegriffeVersions_feature"),
getString("_UI_PropertyDescriptor_description",
- "_UI_VersionInfo_signals_feature",
+ "_UI_VersionInfo_signalbegriffeVersions_feature",
"_UI_VersionInfo_type"),
- ValidationreportPackage.Literals.VERSION_INFO__SIGNALS, true,
- false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null,
- null));
+ ValidationreportPackage.Literals.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS,
+ true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null, null));
}
/**
@@ -127,10 +127,7 @@ public Object getImage(Object object) {
*/
@Override
public String getText(Object object) {
- String label = ((VersionInfo) object).getPlanPro();
- return label == null || label.length() == 0
- ? getString("_UI_VersionInfo_type")
- : getString("_UI_VersionInfo_type") + " " + label;
+ return getString("_UI_VersionInfo_type");
}
/**
@@ -146,8 +143,8 @@ public void notifyChanged(Notification notification) {
updateChildren(notification);
switch (notification.getFeatureID(VersionInfo.class)) {
- case ValidationreportPackage.VERSION_INFO__PLAN_PRO:
- case ValidationreportPackage.VERSION_INFO__SIGNALS:
+ case ValidationreportPackage.VERSION_INFO__PLAN_PRO_VERSIONS:
+ case ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS:
fireNotifyChanged(new ViewerNotification(notification,
notification.getNotifier(), false, true));
return;
diff --git a/java/bundles/org.eclipse.set.model.validationreport/META-INF/MANIFEST.MF b/java/bundles/org.eclipse.set.model.validationreport/META-INF/MANIFEST.MF
index 1cc2ad694d..d4d4c1d577 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/META-INF/MANIFEST.MF
+++ b/java/bundles/org.eclipse.set.model.validationreport/META-INF/MANIFEST.MF
@@ -5,7 +5,7 @@ Bundle-SymbolicName: org.eclipse.set.model.validationreport;singleton:=true
Bundle-Version: 2.6.0.qualifier
Bundle-ClassPath: .
Automatic-Module-Name: org.eclipse.set.model.validationreport
-Bundle-RequiredExecutionEnvironment: JavaSE-21
+Bundle-RequiredExecutionEnvironment: JavaSE-17
Export-Package: org.eclipse.set.model.validationreport,
org.eclipse.set.model.validationreport.impl,
org.eclipse.set.model.validationreport.util
diff --git a/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.ecore b/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.ecore
index 52ab071606..1074b71842 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.ecore
+++ b/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.ecore
@@ -38,8 +38,10 @@
-
-
+
+
diff --git a/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.genmodel b/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.genmodel
index 261da00800..3f2a6e3268 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.genmodel
+++ b/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.genmodel
@@ -58,8 +58,8 @@
-
-
+
+
diff --git a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/ValidationreportPackage.java b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/ValidationreportPackage.java
index 8129ae3728..d7ec5e8a16 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/ValidationreportPackage.java
+++ b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/ValidationreportPackage.java
@@ -323,22 +323,22 @@ public interface ValidationreportPackage extends EPackage {
int VERSION_INFO = 2;
/**
- * The feature id for the 'Plan Pro' attribute.
+ * The feature id for the 'Plan Pro Versions' attribute
+ * list.
*
* @generated
* @ordered
*/
- int VERSION_INFO__PLAN_PRO = 0;
+ int VERSION_INFO__PLAN_PRO_VERSIONS = 0;
/**
- * The feature id for the 'Signals' attribute.
+ * The feature id for the 'Signalbegriffe Versions'
+ * attribute list.
*
* @generated
* @ordered
*/
- int VERSION_INFO__SIGNALS = 1;
+ int VERSION_INFO__SIGNALBEGRIFFE_VERSIONS = 1;
/**
* The number of structural features of the 'Version Info' class.
@@ -779,28 +779,32 @@ public interface ValidationreportPackage extends EPackage {
EClass getVersionInfo();
/**
- * Returns the meta object for the attribute
- * '{@link org.eclipse.set.model.validationreport.VersionInfo#getPlanPro
- * Plan Pro}'.
+ * Returns the meta object for the attribute list
+ * '{@link org.eclipse.set.model.validationreport.VersionInfo#getPlanProVersions
+ * Plan Pro Versions}'.
*
- * @return the meta object for the attribute 'Plan Pro'.
- * @see org.eclipse.set.model.validationreport.VersionInfo#getPlanPro()
+ * @return the meta object for the attribute list 'Plan Pro
+ * Versions'.
+ * @see org.eclipse.set.model.validationreport.VersionInfo#getPlanProVersions()
* @see #getVersionInfo()
* @generated
*/
- EAttribute getVersionInfo_PlanPro();
+ EAttribute getVersionInfo_PlanProVersions();
/**
- * Returns the meta object for the attribute
- * '{@link org.eclipse.set.model.validationreport.VersionInfo#getSignals
- * Signals}'.
+ * Returns the meta object for the attribute list
+ * '{@link org.eclipse.set.model.validationreport.VersionInfo#getSignalbegriffeVersions
+ * Signalbegriffe Versions}'.
*
- * @return the meta object for the attribute 'Signals'.
- * @see org.eclipse.set.model.validationreport.VersionInfo#getSignals()
+ * @return the meta object for the attribute list 'Signalbegriffe
+ * Versions'.
+ * @see org.eclipse.set.model.validationreport.VersionInfo#getSignalbegriffeVersions()
* @see #getVersionInfo()
* @generated
*/
- EAttribute getVersionInfo_Signals();
+ EAttribute getVersionInfo_SignalbegriffeVersions();
/**
* Returns the meta object for class
@@ -1185,20 +1189,23 @@ interface Literals {
EClass VERSION_INFO = eINSTANCE.getVersionInfo();
/**
- * The meta object literal for the 'Plan Pro' attribute
- * feature.
+ * The meta object literal for the 'Plan Pro Versions'
+ * attribute list feature.
*
* @generated
*/
- EAttribute VERSION_INFO__PLAN_PRO = eINSTANCE.getVersionInfo_PlanPro();
+ EAttribute VERSION_INFO__PLAN_PRO_VERSIONS = eINSTANCE
+ .getVersionInfo_PlanProVersions();
/**
- * The meta object literal for the 'Signals' attribute
- * feature.
+ * The meta object literal for the 'Signalbegriffe
+ * Versions' attribute list feature.
+ *
*
* @generated
*/
- EAttribute VERSION_INFO__SIGNALS = eINSTANCE.getVersionInfo_Signals();
+ EAttribute VERSION_INFO__SIGNALBEGRIFFE_VERSIONS = eINSTANCE
+ .getVersionInfo_SignalbegriffeVersions();
/**
* The meta object literal for the
diff --git a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/VersionInfo.java b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/VersionInfo.java
index 255a747945..a9a7db2fa5 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/VersionInfo.java
+++ b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/VersionInfo.java
@@ -8,6 +8,7 @@
*/
package org.eclipse.set.model.validationreport;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
/**
@@ -18,10 +19,10 @@
* The following features are supported:
*
*
- * - {@link org.eclipse.set.model.validationreport.VersionInfo#getPlanPro
- * Plan Pro}
- * - {@link org.eclipse.set.model.validationreport.VersionInfo#getSignals
- * Signals}
+ * - {@link org.eclipse.set.model.validationreport.VersionInfo#getPlanProVersions
+ * Plan Pro Versions}
+ * - {@link org.eclipse.set.model.validationreport.VersionInfo#getSignalbegriffeVersions
+ * Signalbegriffe Versions}
*
*
* @see org.eclipse.set.model.validationreport.ValidationreportPackage#getVersionInfo()
@@ -30,63 +31,28 @@
*/
public interface VersionInfo extends EObject {
/**
- * Returns the value of the 'Plan Pro' attribute.
- *
- * If the meaning of the 'Plan Pro' attribute isn't clear, there
- * really should be more of a description here...
- *
- *
+ * Returns the value of the 'Plan Pro Versions' attribute
+ * list. The list contents are of type {@link java.lang.String}.
*
- * @return the value of the 'Plan Pro' attribute.
- * @see #setPlanPro(String)
- * @see org.eclipse.set.model.validationreport.ValidationreportPackage#getVersionInfo_PlanPro()
+ * @return the value of the 'Plan Pro Versions' attribute list.
+ * @see org.eclipse.set.model.validationreport.ValidationreportPackage#getVersionInfo_PlanProVersions()
* @model
* @generated
*/
- String getPlanPro();
+ EList getPlanProVersions();
/**
- * Sets the value of the
- * '{@link org.eclipse.set.model.validationreport.VersionInfo#getPlanPro
- * Plan Pro}' attribute.
+ * Returns the value of the 'Signalbegriffe Versions'
+ * attribute list. The list contents are of type {@link java.lang.String}.
+ *
*
- * @param value
- * the new value of the 'Plan Pro' attribute.
- * @see #getPlanPro()
- * @generated
- */
- void setPlanPro(String value);
-
- /**
- * Returns the value of the 'Signals' attribute.
- *
- * If the meaning of the 'Signals' attribute isn't clear, there
- * really should be more of a description here...
- *
- *
- *
- * @return the value of the 'Signals' attribute.
- * @see #setSignals(String)
- * @see org.eclipse.set.model.validationreport.ValidationreportPackage#getVersionInfo_Signals()
+ * @return the value of the 'Signalbegriffe Versions' attribute
+ * list.
+ * @see org.eclipse.set.model.validationreport.ValidationreportPackage#getVersionInfo_SignalbegriffeVersions()
* @model
* @generated
*/
- String getSignals();
-
- /**
- * Sets the value of the
- * '{@link org.eclipse.set.model.validationreport.VersionInfo#getSignals
- * Signals}' attribute.
- *
- * @param value
- * the new value of the 'Signals' attribute.
- * @see #getSignals()
- * @generated
- */
- void setSignals(String value);
+ EList getSignalbegriffeVersions();
} // VersionInfo
diff --git a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/ValidationreportPackageImpl.java b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/ValidationreportPackageImpl.java
index a2649611fc..912c4582ee 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/ValidationreportPackageImpl.java
+++ b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/ValidationreportPackageImpl.java
@@ -429,7 +429,7 @@ public EClass getVersionInfo() {
* @generated
*/
@Override
- public EAttribute getVersionInfo_PlanPro() {
+ public EAttribute getVersionInfo_PlanProVersions() {
return (EAttribute) versionInfoEClass.getEStructuralFeatures().get(0);
}
@@ -439,7 +439,7 @@ public EAttribute getVersionInfo_PlanPro() {
* @generated
*/
@Override
- public EAttribute getVersionInfo_Signals() {
+ public EAttribute getVersionInfo_SignalbegriffeVersions() {
return (EAttribute) versionInfoEClass.getEStructuralFeatures().get(1);
}
@@ -621,8 +621,9 @@ public void createPackageContents() {
VALIDATION_PROBLEM__GENERAL_MSG);
versionInfoEClass = createEClass(VERSION_INFO);
- createEAttribute(versionInfoEClass, VERSION_INFO__PLAN_PRO);
- createEAttribute(versionInfoEClass, VERSION_INFO__SIGNALS);
+ createEAttribute(versionInfoEClass, VERSION_INFO__PLAN_PRO_VERSIONS);
+ createEAttribute(versionInfoEClass,
+ VERSION_INFO__SIGNALBEGRIFFE_VERSIONS);
fileInfoEClass = createEClass(FILE_INFO);
createEAttribute(fileInfoEClass, FILE_INFO__FILE_NAME);
@@ -781,14 +782,15 @@ public void initializePackageContents() {
initEClass(versionInfoEClass, VersionInfo.class, "VersionInfo",
!IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getVersionInfo_PlanPro(), ecorePackage.getEString(),
- "planPro", null, 0, 1, VersionInfo.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
- !IS_DERIVED, IS_ORDERED);
- initEAttribute(getVersionInfo_Signals(), ecorePackage.getEString(),
- "signals", null, 0, 1, VersionInfo.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
- !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVersionInfo_PlanProVersions(),
+ ecorePackage.getEString(), "planProVersions", null, 0, -1,
+ VersionInfo.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getVersionInfo_SignalbegriffeVersions(),
+ ecorePackage.getEString(), "signalbegriffeVersions", null, 0,
+ -1, VersionInfo.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
initEClass(fileInfoEClass, FileInfo.class, "FileInfo", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
diff --git a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/VersionInfoImpl.java b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/VersionInfoImpl.java
index 614152746d..fd2652bb63 100644
--- a/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/VersionInfoImpl.java
+++ b/java/bundles/org.eclipse.set.model.validationreport/src/org/eclipse/set/model/validationreport/impl/VersionInfoImpl.java
@@ -8,13 +8,12 @@
*/
package org.eclipse.set.model.validationreport.impl;
-import org.eclipse.emf.common.notify.Notification;
-
+import java.util.Collection;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import org.eclipse.set.model.validationreport.ValidationreportPackage;
import org.eclipse.set.model.validationreport.VersionInfo;
@@ -25,10 +24,10 @@
* The following features are implemented:
*
*
- * - {@link org.eclipse.set.model.validationreport.impl.VersionInfoImpl#getPlanPro
- * Plan Pro}
- * - {@link org.eclipse.set.model.validationreport.impl.VersionInfoImpl#getSignals
- * Signals}
+ * - {@link org.eclipse.set.model.validationreport.impl.VersionInfoImpl#getPlanProVersions
+ * Plan Pro Versions}
+ * - {@link org.eclipse.set.model.validationreport.impl.VersionInfoImpl#getSignalbegriffeVersions
+ * Signalbegriffe Versions}
*
*
* @generated
@@ -36,44 +35,26 @@
public class VersionInfoImpl extends MinimalEObjectImpl.Container
implements VersionInfo {
/**
- * The default value of the '{@link #getPlanPro() Plan Pro}'
- * attribute.
- *
- * @see #getPlanPro()
- * @generated
- * @ordered
- */
- protected static final String PLAN_PRO_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getPlanPro() Plan Pro}'
- * attribute.
+ * The cached value of the '{@link #getPlanProVersions() Plan Pro
+ * Versions}' attribute list.
*
- * @see #getPlanPro()
+ * @see #getPlanProVersions()
* @generated
* @ordered
*/
- protected String planPro = PLAN_PRO_EDEFAULT;
+ protected EList planProVersions;
/**
- * The default value of the '{@link #getSignals() Signals}'
- * attribute.
+ * The cached value of the '{@link #getSignalbegriffeVersions()
+ * Signalbegriffe Versions}' attribute list.
*
- * @see #getSignals()
+ * @see #getSignalbegriffeVersions()
* @generated
* @ordered
*/
- protected static final String SIGNALS_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getSignals() Signals}'
- * attribute.
- *
- * @see #getSignals()
- * @generated
- * @ordered
- */
- protected String signals = SIGNALS_EDEFAULT;
+ protected EList signalbegriffeVersions;
/**
*
@@ -100,33 +81,13 @@ protected EClass eStaticClass() {
* @generated
*/
@Override
- public String getPlanPro() {
- return planPro;
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public void setPlanPro(String newPlanPro) {
- String oldPlanPro = planPro;
- planPro = newPlanPro;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET,
- ValidationreportPackage.VERSION_INFO__PLAN_PRO, oldPlanPro,
- planPro));
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public String getSignals() {
- return signals;
+ public EList getPlanProVersions() {
+ if (planProVersions == null) {
+ planProVersions = new EDataTypeUniqueEList(String.class,
+ this,
+ ValidationreportPackage.VERSION_INFO__PLAN_PRO_VERSIONS);
+ }
+ return planProVersions;
}
/**
@@ -135,13 +96,13 @@ public String getSignals() {
* @generated
*/
@Override
- public void setSignals(String newSignals) {
- String oldSignals = signals;
- signals = newSignals;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET,
- ValidationreportPackage.VERSION_INFO__SIGNALS, oldSignals,
- signals));
+ public EList getSignalbegriffeVersions() {
+ if (signalbegriffeVersions == null) {
+ signalbegriffeVersions = new EDataTypeUniqueEList(
+ String.class, this,
+ ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS);
+ }
+ return signalbegriffeVersions;
}
/**
@@ -152,10 +113,10 @@ public void setSignals(String newSignals) {
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
- case ValidationreportPackage.VERSION_INFO__PLAN_PRO:
- return getPlanPro();
- case ValidationreportPackage.VERSION_INFO__SIGNALS:
- return getSignals();
+ case ValidationreportPackage.VERSION_INFO__PLAN_PRO_VERSIONS:
+ return getPlanProVersions();
+ case ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS:
+ return getSignalbegriffeVersions();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -165,14 +126,19 @@ public Object eGet(int featureID, boolean resolve, boolean coreType) {
*
* @generated
*/
+ @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
- case ValidationreportPackage.VERSION_INFO__PLAN_PRO:
- setPlanPro((String) newValue);
+ case ValidationreportPackage.VERSION_INFO__PLAN_PRO_VERSIONS:
+ getPlanProVersions().clear();
+ getPlanProVersions()
+ .addAll((Collection extends String>) newValue);
return;
- case ValidationreportPackage.VERSION_INFO__SIGNALS:
- setSignals((String) newValue);
+ case ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS:
+ getSignalbegriffeVersions().clear();
+ getSignalbegriffeVersions()
+ .addAll((Collection extends String>) newValue);
return;
}
super.eSet(featureID, newValue);
@@ -186,11 +152,11 @@ public void eSet(int featureID, Object newValue) {
@Override
public void eUnset(int featureID) {
switch (featureID) {
- case ValidationreportPackage.VERSION_INFO__PLAN_PRO:
- setPlanPro(PLAN_PRO_EDEFAULT);
+ case ValidationreportPackage.VERSION_INFO__PLAN_PRO_VERSIONS:
+ getPlanProVersions().clear();
return;
- case ValidationreportPackage.VERSION_INFO__SIGNALS:
- setSignals(SIGNALS_EDEFAULT);
+ case ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS:
+ getSignalbegriffeVersions().clear();
return;
}
super.eUnset(featureID);
@@ -204,12 +170,11 @@ public void eUnset(int featureID) {
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
- case ValidationreportPackage.VERSION_INFO__PLAN_PRO:
- return PLAN_PRO_EDEFAULT == null ? planPro != null
- : !PLAN_PRO_EDEFAULT.equals(planPro);
- case ValidationreportPackage.VERSION_INFO__SIGNALS:
- return SIGNALS_EDEFAULT == null ? signals != null
- : !SIGNALS_EDEFAULT.equals(signals);
+ case ValidationreportPackage.VERSION_INFO__PLAN_PRO_VERSIONS:
+ return planProVersions != null && !planProVersions.isEmpty();
+ case ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS:
+ return signalbegriffeVersions != null
+ && !signalbegriffeVersions.isEmpty();
}
return super.eIsSet(featureID);
}
@@ -225,10 +190,10 @@ public String toString() {
return super.toString();
StringBuilder result = new StringBuilder(super.toString());
- result.append(" (planPro: ");
- result.append(planPro);
- result.append(", signals: ");
- result.append(signals);
+ result.append(" (planProVersions: ");
+ result.append(planProVersions);
+ result.append(", signalbegriffeVersions: ");
+ result.append(signalbegriffeVersions);
result.append(')');
return result.toString();
}
diff --git a/web/siteplan/playwright-report/data/01f9e3f3f6b1a623a57a95200e18adee8e4b8640.webm b/web/siteplan/playwright-report/data/01f9e3f3f6b1a623a57a95200e18adee8e4b8640.webm
new file mode 100644
index 0000000000000000000000000000000000000000..282309dc76fe66bac161e30c6e27a7653fd37f16
GIT binary patch
literal 98577
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