diff --git a/java/bundles/org.eclipse.set.application.test/META-INF/MANIFEST.MF b/java/bundles/org.eclipse.set.application.test/META-INF/MANIFEST.MF index 27c2343aff..2eea53a4c4 100644 --- a/java/bundles/org.eclipse.set.application.test/META-INF/MANIFEST.MF +++ b/java/bundles/org.eclipse.set.application.test/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 2.6.0.qualifier Fragment-Host: org.eclipse.set.application Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-Vendor: Eclipse Signalling Engineering Toolbox -Import-Package: net.bytebuddy;version="[1.17.0,2.0.0)", +Import-Package: com.google.common.util.concurrent.internal, + net.bytebuddy;version="[1.17.0,2.0.0)", net.bytebuddy.agent;version="[1.17.0,2.0.0)", org.apache.commons.lang3.reflect;version="[3.17.0,4.0.0)", org.eclipse.set.unittest.utils, 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..c6e2e807c0 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 @@ -9,6 +9,9 @@ package org.eclipse.set.core.services.version; import java.nio.file.Path; +import java.util.Comparator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.eclipse.set.model.validationreport.VersionInfo; @@ -31,6 +34,9 @@ public interface PlanProVersionService { */ public record PlanProVersionFormat(String major, String patch, String minor) { + + private static final String VERSION_FORMAT = "(?[1-9]+\\.\\d+)\\.(?\\d+)(\\.(?\\d))*"; //$NON-NLS-1$ + /** * @return . */ @@ -45,6 +51,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); @@ -58,6 +69,38 @@ public int compare(final PlanProVersionFormat another) { return minor.compareToIgnoreCase(another.minor); } return 0; + } + + /** + * @return the planpro version comparator + */ + public static Comparator compareVersion() { + return (first, second) -> { + final PlanProVersionFormat firstVersion = parseVersionFormat( + first); + final PlanProVersionFormat secondVersion = parseVersionFormat( + second); + return firstVersion.compare(secondVersion); + }; + } + + /** + * Parse planpro version from string + * + * @param version + * the version + * @return the {@link PlanProVersionFormat} + */ + public static PlanProVersionFormat parseVersionFormat( + final String version) { + final Pattern compile = Pattern.compile(VERSION_FORMAT); + final Matcher matcher = compile.matcher(version); + if (!matcher.matches()) { + throw new IllegalArgumentException("Illegal Version Foramt"); //$NON-NLS-1$ + } + + return new PlanProVersionFormat(matcher.group("major"), //$NON-NLS-1$ + matcher.group("patch"), matcher.group("minor")); //$NON-NLS-1$ //$NON-NLS-2$ } } @@ -65,7 +108,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 +124,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..890251606e 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 @@ -13,7 +13,10 @@ import org.eclipse.set.core.services.Services; import org.eclipse.set.core.services.version.PlanProVersionService; import org.eclipse.set.core.services.version.PlanProVersionService.PlanProVersionFormat; +import org.eclipse.set.model.validationreport.ValidationreportFactory; +import org.eclipse.set.model.validationreport.VersionInfo; import org.junit.function.ThrowingRunnable; +import org.mockito.ArgumentMatchers; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -24,6 +27,14 @@ public class MockPlanProVersionService { private static final PlanProVersionFormat currentVersion = new PlanProVersionFormat( "1.10", "0", "3"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + private static VersionInfo givenCurrentVersionInfo() { + final VersionInfo currentVersionInfo = ValidationreportFactory.eINSTANCE + .createVersionInfo(); + currentVersionInfo.getPlanProVersions().add("1.10.0.3"); //$NON-NLS-1$ + currentVersionInfo.getSignalbegriffeVersions().add("1.10.0.4"); //$NON-NLS-1$ + return currentVersionInfo; + } + /** * Mock {@link PlanProVersionService} * @@ -32,12 +43,17 @@ public class MockPlanProVersionService { * @throws Throwable * the exception */ + @SuppressWarnings("boxing") public static void mockPlanProVersionService(final ThrowingRunnable doTest) throws Throwable { final PlanProVersionService mockVersionService = Mockito .mock(PlanProVersionService.class); + Mockito.when(mockVersionService.getCurrentVersion()) - .thenReturn(currentVersion.getFullVersion()); + .thenReturn(givenCurrentVersionInfo()); + Mockito.when(mockVersionService + .isSupportedVersion(ArgumentMatchers.anyString())) + .thenReturn(Boolean.TRUE); 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..fbe53b5510 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..1caa70a1db 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 @@ -8,6 +8,8 @@ */ package org.eclipse.set.core.version; +import static org.eclipse.set.core.services.version.PlanProVersionService.PlanProVersionFormat.parseVersionFormat; + import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -24,6 +26,7 @@ import org.eclipse.set.model.validationreport.ValidationreportFactory; import org.eclipse.set.model.validationreport.VersionInfo; import org.eclipse.set.ppmodel.extensions.PlanProPackageExtensions; +import org.eclipse.set.ppmodel.extensions.SignalbegriffeRil301PackageExtensions; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -41,10 +44,6 @@ public class PlanProVersionServiceImpl implements PlanProVersionService { private static final String SIGNALS_KEY = "http://www.plan-pro.org/modell/Signalbegriffe_Ril_301/"; //$NON-NLS-1$ private static final int VALUE_GROUP = 1; - 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); @@ -77,34 +76,22 @@ private static String parseVersion(final String text, final String key) { return null; } - private static PlanProVersionFormat parseVersionFormat( - final String version) { - final Pattern compile = Pattern.compile(VERSION_FORMAT); - final Matcher matcher = compile.matcher(version); - if (!matcher.matches()) { - throw new IllegalArgumentException("Illegal Version Foramt"); //$NON-NLS-1$ - } - - return new PlanProVersionFormat(matcher.group("major"), //$NON-NLS-1$ - matcher.group("patch"), matcher.group("minor")); //$NON-NLS-1$ //$NON-NLS-2$ - - } - @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() @@ -115,14 +102,8 @@ private static String getSupportedVersions(final String packageName) { .map(Path::toString) .collect(Collectors.toSet()) .stream() - .sorted((first, second) -> { - final PlanProVersionFormat firstVersion = parseVersionFormat( - first); - final PlanProVersionFormat secondVersion = parseVersionFormat( - second); - return firstVersion.compare(secondVersion); - }) - .collect(Collectors.joining(VERSION_SEPARATOR)); + .sorted(PlanProVersionFormat.compareVersion()) + .toList(); } @Override @@ -134,8 +115,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 +129,32 @@ public PlanProVersionFormat getSupportedVersionFormat() { } @Override - public String getCurrentVersion() { - return PlanProPackageExtensions.getModelVersion(); + public VersionInfo getCurrentVersion() { + final VersionInfo versionInfo = ValidationreportFactory.eINSTANCE + .createVersionInfo(); + final String planProVersion = PlanProPackageExtensions + .getModelVersion(); + versionInfo.getPlanProVersions().add(planProVersion); + + final String signalBegriffeVersion = SignalbegriffeRil301PackageExtensions + .getModelVersion(); + versionInfo.getSignalbegriffeVersions().add(signalBegriffeVersion); + return versionInfo; + } + + @Override + public boolean isSupportedVersion(final String uri) { + final VersionInfo supportedVersions = getSupportedVersions(); + final String loadedVersion = uri.substring(uri.lastIndexOf("/") + 1); //$NON-NLS-1$ + if (uri.startsWith(PLAN_PRO_KEY)) { + return supportedVersions.getPlanProVersions() + .contains(loadedVersion); + } + + if (uri.startsWith(SIGNALS_KEY)) { + return supportedVersions.getSignalbegriffeVersions() + .contains(loadedVersion); + } + return false; } } diff --git a/java/bundles/org.eclipse.set.emfforms/META-INF/MANIFEST.MF b/java/bundles/org.eclipse.set.emfforms/META-INF/MANIFEST.MF index 1a4f083de4..126b7b33ac 100644 --- a/java/bundles/org.eclipse.set.emfforms/META-INF/MANIFEST.MF +++ b/java/bundles/org.eclipse.set.emfforms/META-INF/MANIFEST.MF @@ -62,6 +62,7 @@ Import-Package: com.google.common.base;version="15.0.0", org.eclipse.set.basis, org.eclipse.set.basis.attachments, org.eclipse.set.basis.commands, + org.eclipse.set.basis.constants, org.eclipse.set.basis.context, org.eclipse.set.basis.emfforms, org.eclipse.set.basis.exceptions, @@ -76,6 +77,7 @@ Import-Package: com.google.common.base;version="15.0.0", org.eclipse.set.core.services.part, org.eclipse.set.core.services.planningaccess, org.eclipse.set.core.services.session, + org.eclipse.set.core.services.version, org.eclipse.set.core.services.viewmodel, org.eclipse.set.ppmodel.extensions, org.eclipse.set.utils, @@ -107,4 +109,5 @@ Service-Component: OSGI-INF/org.eclipse.set.emfforms.attachment.AttachmentListRe OSGI-INF/org.eclipse.set.emfforms.table.TableControlDetailCustomSWTRendererService.xml, OSGI-INF/org.eclipse.set.emfforms.text.TextFieldService.xml, OSGI-INF/org.eclipse.set.emfforms.text.TextWithButtonControlSWTRendererService.xml, + OSGI-INF/org.eclipse.set.emfforms.text.VersionInfoRendererService.xml, OSGI-INF/org.eclipse.set.emfforms.view.ViewRendererService.xml 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.emfforms/src/org/eclipse/set/emfforms/text/VersionInfoRenderer.java b/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/VersionInfoRenderer.java new file mode 100644 index 0000000000..3aa513008c --- /dev/null +++ b/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/VersionInfoRenderer.java @@ -0,0 +1,170 @@ +/** + * 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.emfforms.text; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.eclipse.core.databinding.Binding; +import org.eclipse.core.databinding.DataBindingContext; +import org.eclipse.core.databinding.UpdateValueStrategy; +import org.eclipse.core.databinding.conversion.Converter; +import org.eclipse.core.databinding.conversion.IConverter; +import org.eclipse.core.databinding.observable.value.IObservableValue; +import org.eclipse.emf.databinding.EMFUpdateValueStrategy; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EFactory; +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; +import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider; +import org.eclipse.emfforms.spi.common.report.ReportService; +import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding; +import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport; +import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider; +import org.eclipse.jface.databinding.swt.typed.WidgetProperties; +import org.eclipse.set.basis.constants.ToolboxConstants; +import org.eclipse.set.core.services.version.PlanProVersionService.PlanProVersionFormat; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; + +import jakarta.inject.Inject; + +/** + * Custom control for get planpro/signalbegriff versions IMPROVE: convert EMF + * Forms view model to java code with SWTWidget + * + * @author truong + */ +public class VersionInfoRenderer extends TextControlSWTRenderer { + + /** + * Default constructor. + * + * @param vElement + * the view model element to be rendered + * @param viewContext + * the view context + * @param reportService + * The {@link ReportService} + * @param emfFormsDatabinding + * The {@link EMFFormsDatabinding} + * @param emfFormsLabelProvider + * The {@link EMFFormsLabelProvider} + * @param vtViewTemplateProvider + * The {@link VTViewTemplateProvider} + * @param emfFormsEditSupport + * The {@link EMFFormsEditSupport} + */ + @Inject + public VersionInfoRenderer(final VControl vElement, + final ViewModelContext viewContext, + final ReportService reportService, + final EMFFormsDatabinding emfFormsDatabinding, + final EMFFormsLabelProvider emfFormsLabelProvider, + final VTViewTemplateProvider vtViewTemplateProvider, + final EMFFormsEditSupport emfFormsEditSupport) { + super(vElement, viewContext, reportService, emfFormsDatabinding, + emfFormsLabelProvider, vtViewTemplateProvider, + emfFormsEditSupport); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + @Override + protected Binding bindValue(final Control text, + final IObservableValue modelValue, + final DataBindingContext dataBindingContext, + final UpdateValueStrategy targetToModel, + final UpdateValueStrategy modelToTarget) { + final Control controlToObserve = Composite.class.cast(text) + .getChildren()[0]; + final boolean useOnModifyDatabinding = useOnModifyDatabinding(); + final IObservableValue value; + if (useOnModifyDatabinding) { + value = WidgetProperties.text(SWT.Modify) + .observeDelayed(250, controlToObserve); + } else { + value = WidgetProperties.text(SWT.FocusOut) + .observe(controlToObserve); + } + + return dataBindingContext.bindValue(value, modelValue, targetToModel, + new CustomModelToTargetStrategy()); + } + + protected class CustomModelToTargetStrategy extends EMFUpdateValueStrategy { + @Override + protected IConverter createConverter(final Object fromType, + final Object toType) { + if (fromType == String.class + && toType instanceof final EAttribute eAttribute) { + return stringToEAttribute(fromType, eAttribute); + } + + if (toType == String.class + && fromType instanceof final EAttribute eAttribute) { + return eAttributeToString(eAttribute, toType); + } + + return super.createConverter(fromType, toType); + } + + protected IConverter stringToEAttribute(final Object from, + final EAttribute to) { + final EDataType eDataType = to.getEAttributeType(); + final EFactory eFactory = eDataType.getEPackage() + .getEFactoryInstance(); + return new Converter<>(from, to) { + @Override + public Object convert(final Object fromObject) { + final String value = fromObject == null ? null + : fromObject.toString(); + if (to.isMany()) { + final List result = new ArrayList<>(); + if (value != null) { + for (final String element : value.split(" ")) { //$NON-NLS-1$ + result.add(eFactory.createFromString(eDataType, + element)); + } + } + return result; + } + return eFactory.createFromString(eDataType, value); + } + }; + } + + protected IConverter eAttributeToString(final EAttribute from, + final Object to) { + final EDataType eDataType = from.getEAttributeType(); + final EFactory eFactory = eDataType.getEPackage() + .getEFactoryInstance(); + return new Converter<>(from, to) { + @Override + public Object convert(final Object fromObject) { + if (from.isMany()) { + return ((List) fromObject).stream() + .map(obj -> eFactory.convertToString(eDataType, + obj)) + .sorted(PlanProVersionFormat.compareVersion()) + .collect(Collectors.joining( + ToolboxConstants.VERSION_SEPARATOR)); + } + return eFactory.convertToString(eDataType, fromObject); + } + }; + } + } + +} diff --git a/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/VersionInfoRendererService.java b/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/VersionInfoRendererService.java new file mode 100644 index 0000000000..f77b8389c4 --- /dev/null +++ b/java/bundles/org.eclipse.set.emfforms/src/org/eclipse/set/emfforms/text/VersionInfoRendererService.java @@ -0,0 +1,33 @@ +/** + * 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.emfforms.text; + +import org.eclipse.emf.ecp.view.spi.model.VControl; +import org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererService; +import org.eclipse.set.emfforms.utils.AnnotatedViewModelRendererService; +import org.osgi.service.component.annotations.Component; + +/** + * + */ +@Component(immediate = true, service = { EMFFormsDIRendererService.class }) +public class VersionInfoRendererService extends + AnnotatedViewModelRendererService { + private static final double PRIORITY = 30; + + /** + * Create the service + */ + public VersionInfoRendererService() { + super(VersionInfoRenderer.class, PRIORITY); + } + +} diff --git a/java/bundles/org.eclipse.set.feature.validation/META-INF/MANIFEST.MF b/java/bundles/org.eclipse.set.feature.validation/META-INF/MANIFEST.MF index 3d3c442eaa..79f66c12b9 100644 --- a/java/bundles/org.eclipse.set.feature.validation/META-INF/MANIFEST.MF +++ b/java/bundles/org.eclipse.set.feature.validation/META-INF/MANIFEST.MF @@ -11,7 +11,6 @@ Import-Package: com.google.common.base;version="15.0.0", jakarta.annotation, jakarta.inject;version="1.0.0", org.apache.commons.io;version="2.2.0", - org.apache.commons.text, org.apache.commons.io.filefilter;version="2.15.0", org.apache.poi;version="5.0.0", org.eclipse.core.runtime;version="3.5.0", diff --git a/java/bundles/org.eclipse.set.feature.validation/OSGI-INF/l10n/bundle.properties b/java/bundles/org.eclipse.set.feature.validation/OSGI-INF/l10n/bundle.properties index b269d268c4..a1edf57cfc 100644 --- a/java/bundles/org.eclipse.set.feature.validation/OSGI-INF/l10n/bundle.properties +++ b/java/bundles/org.eclipse.set.feature.validation/OSGI-INF/l10n/bundle.properties @@ -56,3 +56,5 @@ XsdSuccessMsg=Es sind keine Schemawarnungen aufgetreten. IoSuccessMsg=Es sind keine Ein-/Ausgabefehler aufgetreten. SaveToolboxFile=Speichern PlanPro Daten +ValidationInformation_PlanPro_Versions_Label=PlanPro +ValidationInformation_Signalbegriff_Ril301_Versions_Label=Signalbegriffe \ No newline at end of file diff --git a/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationPart.java b/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationPart.java index de7f5e0be0..cbadcdc6ad 100644 --- a/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationPart.java +++ b/java/bundles/org.eclipse.set.feature.validation/src/org/eclipse/set/feature/validation/parts/ValidationPart.java @@ -155,65 +155,7 @@ private void create(final Composite parent) { // Register nattable injector tableView = new ValidationTableView(this, messages, tableMenuService); - final Function func = innerParent -> { - - final Composite composite = new Composite(innerParent, - SWT.NONE); - - GridLayoutFactory.swtDefaults() - .numColumns(3) - .applyTo(composite); - GridDataFactory.swtDefaults() - .align(SWT.FILL, SWT.FILL) - .grab(true, false) - .applyTo(composite); - - final Control natTable = tableView.create(innerParent, - validationReport); - // create the open view button - final Button showTableButton = new Button(composite, SWT.PUSH); - GridDataFactory.swtDefaults() - .align(SWT.LEFT, SWT.FILL) - .grab(false, false) - .applyTo(showTableButton); - - showTableButton.setText(messages.ShowValidationTableMsg); - showTableButton.addListener(SWT.Selection, - event -> showValidationTable()); - showTableButton.setSize(BUTTON_WIDTH_EXPORT_VALIDATION, 0); - - // create the toggle collapsed button - final Button collapseAllButton = tableView - .createExpandCollapseAllButton(composite, - messages.ValidationTable_ExpandAllGroup, - messages.ValidationTable_CollapseAllGroup); - - exportValidationButton = new Button(composite, SWT.PUSH); - GridDataFactory.swtDefaults() - .align(SWT.RIGHT, SWT.FILL) - .grab(true, false) - .applyTo(exportValidationButton); - exportValidationButton.setText(messages.ExportValidationMsg); - exportValidationButton.addListener(SWT.Selection, - event -> tableView.exportCsv()); - exportValidationButton.setSize(BUTTON_WIDTH_EXPORT_VALIDATION, - 0); - - // Setup layout - showTableButton.setLayoutData( - new GridData(SWT.LEFT, SWT.TOP, false, true)); - collapseAllButton.setLayoutData( - new GridData(SWT.LEFT, SWT.TOP, false, true)); - exportValidationButton.setLayoutData( - new GridData(SWT.RIGHT, SWT.TOP, true, true)); - - GridDataFactory.swtDefaults() - .align(SWT.FILL, SWT.FILL) - .grab(true, true) - .hint(SWT.DEFAULT, 600) - .applyTo(natTable); - return natTable; - }; + final Function func = this::createInjectedTable; modelService.put(INJECT_VIEW_VALIDATION_NATTABLE, func); // create form content @@ -257,6 +199,61 @@ private void create(final Composite parent) { } } + protected Control createInjectedTable(final Composite innerParent) { + final Composite composite = new Composite(innerParent, SWT.NONE); + + GridLayoutFactory.swtDefaults().numColumns(3).applyTo(composite); + GridDataFactory.swtDefaults() + .align(SWT.FILL, SWT.FILL) + .grab(true, false) + .applyTo(composite); + + final Control natTable = tableView.create(innerParent, + validationReport); + // create the open view button + final Button showTableButton = new Button(composite, SWT.PUSH); + GridDataFactory.swtDefaults() + .align(SWT.LEFT, SWT.FILL) + .grab(false, false) + .applyTo(showTableButton); + + showTableButton.setText(messages.ShowValidationTableMsg); + showTableButton.addListener(SWT.Selection, + event -> showValidationTable()); + showTableButton.setSize(BUTTON_WIDTH_EXPORT_VALIDATION, 0); + + // create the toggle collapsed button + final Button collapseAllButton = tableView + .createExpandCollapseAllButton(composite, + messages.ValidationTable_ExpandAllGroup, + messages.ValidationTable_CollapseAllGroup); + + exportValidationButton = new Button(composite, SWT.PUSH); + GridDataFactory.swtDefaults() + .align(SWT.RIGHT, SWT.FILL) + .grab(true, false) + .applyTo(exportValidationButton); + exportValidationButton.setText(messages.ExportValidationMsg); + exportValidationButton.addListener(SWT.Selection, + event -> tableView.exportCsv()); + exportValidationButton.setSize(BUTTON_WIDTH_EXPORT_VALIDATION, 0); + + // Setup layout + showTableButton + .setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true)); + collapseAllButton + .setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, true)); + exportValidationButton + .setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, true, true)); + + GridDataFactory.swtDefaults() + .align(SWT.FILL, SWT.FILL) + .grab(true, true) + .hint(SWT.DEFAULT, 600) + .applyTo(natTable); + return natTable; + } + private void storageReport() { final Cache cache = cacheService.getCache(ToolboxFileRole.SESSION, ToolboxConstants.CacheId.PROBLEM_MESSAGE); 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.feature.validation/viewmodel/ValidationReport.view b/java/bundles/org.eclipse.set.feature.validation/viewmodel/ValidationReport.view index e59e9e4600..9e98629434 100644 --- a/java/bundles/org.eclipse.set.feature.validation/viewmodel/ValidationReport.view +++ b/java/bundles/org.eclipse.set.feature.validation/viewmodel/ValidationReport.view @@ -33,16 +33,18 @@ - - - + + + + - - - + + + + @@ -71,15 +73,17 @@ - - - + + + + - - - + + + + diff --git a/java/bundles/org.eclipse.set.model.validationreport.edit/.settings/org.eclipse.jdt.core.prefs b/java/bundles/org.eclipse.set.model.validationreport.edit/.settings/org.eclipse.jdt.core.prefs index ee6f3d1479..edca84d242 100644 --- a/java/bundles/org.eclipse.set.model.validationreport.edit/.settings/org.eclipse.jdt.core.prefs +++ b/java/bundles/org.eclipse.set.model.validationreport.edit/.settings/org.eclipse.jdt.core.prefs @@ -8,9 +8,12 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullable.secondary= org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 org.eclipse.jdt.core.compiler.doc.comment.support=disabled org.eclipse.jdt.core.compiler.problem.APILeak=warning org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning org.eclipse.jdt.core.compiler.problem.deadCode=warning @@ -19,6 +22,8 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled @@ -76,6 +81,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled @@ -112,3 +118,5 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=21 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..f54d9e7170 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 = PlanPro +_UI_VersionInfo_signalbegriffeVersions_feature = Signalbegriffe 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/.settings/org.eclipse.jdt.core.prefs b/java/bundles/org.eclipse.set.model.validationreport/.settings/org.eclipse.jdt.core.prefs index f9c421c8b8..b7f3d712de 100644 --- a/java/bundles/org.eclipse.set.model.validationreport/.settings/org.eclipse.jdt.core.prefs +++ b/java/bundles/org.eclipse.set.model.validationreport/.settings/org.eclipse.jdt.core.prefs @@ -8,9 +8,12 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable org.eclipse.jdt.core.compiler.annotation.nullable.secondary= org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 org.eclipse.jdt.core.compiler.doc.comment.support=disabled org.eclipse.jdt.core.compiler.problem.APILeak=warning org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.autoboxing=ignore org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning org.eclipse.jdt.core.compiler.problem.deadCode=warning @@ -19,6 +22,8 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled @@ -76,6 +81,7 @@ org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=igno org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled @@ -112,3 +118,5 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning org.eclipse.jdt.core.compiler.problem.unusedWarningToken=ignore org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=21 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..c3bb4d1f0b 100644 --- a/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.genmodel +++ b/java/bundles/org.eclipse.set.model.validationreport/model/validationreport.genmodel @@ -5,7 +5,7 @@ modelPluginID="org.eclipse.set.model.validationreport" modelName="Validationreport" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true" commentFormatting="true" testsDirectory="" importerID="org.eclipse.emf.importer.ecore" - complianceLevel="17.0" copyrightFields="false" operationReflection="true" importOrganizing="true"> + complianceLevel="21.0" copyrightFields="false" operationReflection="true" importOrganizing="true"> validationreport.ecore @@ -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) newValue); return; - case ValidationreportPackage.VERSION_INFO__SIGNALS: - setSignals((String) newValue); + case ValidationreportPackage.VERSION_INFO__SIGNALBEGRIFFE_VERSIONS: + getSignalbegriffeVersions().clear(); + getSignalbegriffeVersions() + .addAll((Collection) 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/java/bundles/org.eclipse.set.releng.set.product/set.product b/java/bundles/org.eclipse.set.releng.set.product/set.product index 8adc79ff55..a5ccc2cfdc 100644 --- a/java/bundles/org.eclipse.set.releng.set.product/set.product +++ b/java/bundles/org.eclipse.set.releng.set.product/set.product @@ -64,7 +64,6 @@ - diff --git a/java/bundles/org.eclipse.set.unittest.utils/META-INF/MANIFEST.MF b/java/bundles/org.eclipse.set.unittest.utils/META-INF/MANIFEST.MF index e205d0c67b..bf5bb83a4b 100644 --- a/java/bundles/org.eclipse.set.unittest.utils/META-INF/MANIFEST.MF +++ b/java/bundles/org.eclipse.set.unittest.utils/META-INF/MANIFEST.MF @@ -11,8 +11,11 @@ Require-Bundle: org.hamcrest.core, org.eclipse.set.model.planpro, junit-platform-commons, junit-platform-launcher, - junit-platform-runner -Import-Package: org.eclipse.emf.common.util, + junit-platform-runner, + org.mockito.mockito-core +Import-Package: net.bytebuddy, + net.bytebuddy.agent, + org.eclipse.emf.common.util, org.eclipse.emf.ecore.resource, org.eclipse.emf.ecore.xmi, org.eclipse.emf.edit.domain, @@ -26,6 +29,8 @@ Import-Package: org.eclipse.emf.common.util, org.eclipse.set.core.services.session, org.eclipse.set.core.services.version, org.eclipse.set.core.version, + org.eclipse.set.model.validationreport, + org.eclipse.set.ppmodel.extensions, org.junit.jupiter.api, org.junit.jupiter.api.function, org.junit.jupiter.params, diff --git a/java/bundles/org.eclipse.set.unittest.utils/src/org/eclipse/set/unittest/utils/AbstractToolboxTest.java b/java/bundles/org.eclipse.set.unittest.utils/src/org/eclipse/set/unittest/utils/AbstractToolboxTest.java index 3200576910..9e171bde98 100644 --- a/java/bundles/org.eclipse.set.unittest.utils/src/org/eclipse/set/unittest/utils/AbstractToolboxTest.java +++ b/java/bundles/org.eclipse.set.unittest.utils/src/org/eclipse/set/unittest/utils/AbstractToolboxTest.java @@ -38,13 +38,19 @@ import org.eclipse.set.core.modelservice.PlanningAccessServiceImpl; import org.eclipse.set.core.services.Services; import org.eclipse.set.core.services.cache.NoCacheService; -import org.eclipse.set.core.version.PlanProVersionServiceImpl; +import org.eclipse.set.core.services.version.PlanProVersionService; import org.eclipse.set.model.planpro.PlanPro.DocumentRoot; import org.eclipse.set.model.planpro.PlanPro.PlanProPackage; import org.eclipse.set.model.planpro.PlanPro.PlanPro_Schnittstelle; import org.eclipse.set.model.planpro.PlanPro.util.PlanProResourceFactoryImpl; import org.eclipse.set.model.planpro.Signalbegriffe_Ril_301.Signalbegriffe_Ril_301Package; +import org.eclipse.set.model.validationreport.ValidationreportFactory; +import org.eclipse.set.model.validationreport.VersionInfo; +import org.eclipse.set.ppmodel.extensions.PlanProPackageExtensions; +import org.eclipse.set.ppmodel.extensions.SignalbegriffeRil301PackageExtensions; import org.junit.jupiter.api.BeforeEach; +import org.mockito.ArgumentMatchers; +import org.mockito.Mockito; /** * Base class for Siteplan Tests with common utilities @@ -79,6 +85,7 @@ public class AbstractToolboxTest { protected PlanPro_Schnittstelle planProSchnittstelle; private ResourceSet resourceSet; + private PlanProVersionService planproVersionService; protected static String getModel(final Class clazz, final String name) { final URL res = clazz.getClassLoader().getResource(name); @@ -154,7 +161,7 @@ protected void initPackages() { .eClass(); org.eclipse.set.model.planpro.Layoutinformationen.LayoutinformationenPackage.eINSTANCE .eClass(); - + givenPlanProVersionService(); Services.setCacheService(new NoCacheService()); Services.setPlanningAccessService(new PlanningAccessServiceImpl()); @@ -255,8 +262,8 @@ private XMLResource loadResource(final URI resourceURI) throws IOException { final XMLResource resource = (XMLResource) resourceSet .createResource(resourceURI); final PlanProFileResource planproResource = new PlanProFileResource( - resourceURI, new PlanProXMLHelper(resource, - new PlanProVersionServiceImpl())); + resourceURI, + new PlanProXMLHelper(resource, planproVersionService)); try { planproResource.load(null); } catch (final Exception e) { @@ -268,4 +275,20 @@ resourceURI, new PlanProXMLHelper(resource, return planproResource; } + @SuppressWarnings("boxing") + protected void givenPlanProVersionService() { + planproVersionService = Mockito.mock(PlanProVersionService.class); + final VersionInfo versionInfo = ValidationreportFactory.eINSTANCE + .createVersionInfo(); + versionInfo.getPlanProVersions() + .add(PlanProPackageExtensions.getModelVersion()); + versionInfo.getSignalbegriffeVersions() + .add(SignalbegriffeRil301PackageExtensions.getModelVersion()); + Mockito.when(planproVersionService + .isSupportedVersion(ArgumentMatchers.anyString())) + .thenReturn(Boolean.TRUE); + Mockito.when(planproVersionService.getCurrentVersion()) + .thenReturn(versionInfo); + } + }