From 5189d0ff17c7c0a67e29bc2ccef85c30dc8b8057 Mon Sep 17 00:00:00 2001 From: "Textor Andreas (BCI/ESW17)" Date: Wed, 19 Mar 2025 15:15:12 +0100 Subject: [PATCH 1/2] Correctly return the source file for ScalarValue objects --- .../esmf/aspectmodel/loader/Instantiator.java | 5 ++--- .../instantiator/ScalarValueInstantiator.java | 1 - .../esmf/metamodel/impl/DefaultScalarValue.java | 9 ++------- .../loader/AspectModelLoaderTest.java | 16 ++++++++++++++++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/Instantiator.java b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/Instantiator.java index 86d59bff7..77ffff70d 100644 --- a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/Instantiator.java +++ b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/Instantiator.java @@ -164,10 +164,9 @@ protected Value buildValue( final RDFNode node, final Optional charact } if ( node.isResource() ) { - Resource resource = node.asResource(); - + final Resource resource = node.asResource(); if ( resource.hasProperty( RDF.type, SammNs.SAMM.Value() ) ) { - Optional valueOpt = optionalAttributeValue( resource, SammNs.SAMM.value() ).map( Statement::getString ); + final Optional valueOpt = optionalAttributeValue( resource, SammNs.SAMM.value() ).map( Statement::getString ); if ( valueOpt.isEmpty() ) { throw new AspectLoadingException( "samm:Value must contain a samm:value property" ); diff --git a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/instantiator/ScalarValueInstantiator.java b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/instantiator/ScalarValueInstantiator.java index 36da639b6..292434e00 100644 --- a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/instantiator/ScalarValueInstantiator.java +++ b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/instantiator/ScalarValueInstantiator.java @@ -10,7 +10,6 @@ import org.apache.jena.rdf.model.Resource; public class ScalarValueInstantiator extends Instantiator { - public ScalarValueInstantiator( final ModelElementFactory modelElementFactory ) { super( modelElementFactory, ScalarValue.class ); } diff --git a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/metamodel/impl/DefaultScalarValue.java b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/metamodel/impl/DefaultScalarValue.java index 7c7664b40..a5738d42c 100644 --- a/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/metamodel/impl/DefaultScalarValue.java +++ b/core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/metamodel/impl/DefaultScalarValue.java @@ -62,14 +62,9 @@ public Set getDescriptions() { return metaModelBaseAttributes.getDescriptions(); } - /** - * Similar to {@link DefaultScalar#getSourceFile()}, scalar values are not defined in Aspect Model files, so this returns null. - * - * @return null - */ @Override public AspectModelFile getSourceFile() { - return null; + return metaModelBaseAttributes.getSourceFile(); } @Override @@ -90,7 +85,7 @@ public int compareTo( final ScalarValue other ) { @SuppressWarnings( "unchecked" ) private > int compareTo( final Object value1, final Object value2 ) { - return ((T) value1).compareTo( (T) value2 ); + return ( (T) value1 ).compareTo( (T) value2 ); } @Override diff --git a/core/esmf-aspect-meta-model-java/src/test/java/org/eclipse/esmf/aspectmodel/loader/AspectModelLoaderTest.java b/core/esmf-aspect-meta-model-java/src/test/java/org/eclipse/esmf/aspectmodel/loader/AspectModelLoaderTest.java index a788100e7..04593f7dd 100644 --- a/core/esmf-aspect-meta-model-java/src/test/java/org/eclipse/esmf/aspectmodel/loader/AspectModelLoaderTest.java +++ b/core/esmf-aspect-meta-model-java/src/test/java/org/eclipse/esmf/aspectmodel/loader/AspectModelLoaderTest.java @@ -29,6 +29,7 @@ import org.eclipse.esmf.metamodel.AbstractEntity; import org.eclipse.esmf.metamodel.AspectModel; import org.eclipse.esmf.metamodel.ComplexType; +import org.eclipse.esmf.metamodel.ModelElement; import org.eclipse.esmf.metamodel.vocabulary.SammNs; import org.eclipse.esmf.test.InvalidTestAspect; import org.eclipse.esmf.test.TestAspect; @@ -38,8 +39,23 @@ import org.apache.jena.rdf.model.Resource; import org.apache.jena.rdf.model.Statement; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.EnumSource; class AspectModelLoaderTest { + @ParameterizedTest + @EnumSource( value = TestAspect.class ) + void testLoadAspectModelsSourceFilesArePresent( final TestAspect testAspect ) { + final AspectModel aspectModel = TestResources.load( testAspect ); + for ( final ModelElement element : aspectModel.elements() ) { + assertThat( element.getSourceFile() ) + .describedAs( "Element %s has no source file", element ).isNotNull(); + assertThat( element.getSourceFile() ) + .describedAs( "Source file %s must contain defintion for %s", element.getSourceFile(), element.urn() ) + .elements().contains( element ); + } + } + @Test void loadAspectModelWithoutCharacteristicDatatype() { assertThatThrownBy( () -> TestResources.load( InvalidTestAspect.INVALID_CHARACTERISTIC_DATATYPE ) ) From 431383ec4fbf899b0300140a59dc64b5f3edc666 Mon Sep 17 00:00:00 2001 From: "Textor Andreas (BCI/ESW17)" Date: Wed, 19 Mar 2025 15:19:21 +0100 Subject: [PATCH 2/2] Fix code style --- .../generator/json/AspectModelJsonPayloadGenerator.java | 1 - .../generator/json/AspectModelJsonPayloadGeneratorTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/core/esmf-aspect-model-document-generators/src/main/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGenerator.java b/core/esmf-aspect-model-document-generators/src/main/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGenerator.java index e18e5e50c..415fcba44 100644 --- a/core/esmf-aspect-model-document-generators/src/main/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGenerator.java +++ b/core/esmf-aspect-model-document-generators/src/main/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGenerator.java @@ -36,7 +36,6 @@ import java.util.function.BiFunction; import java.util.function.Supplier; import java.util.stream.Stream; - import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.Duration; import javax.xml.datatype.XMLGregorianCalendar; diff --git a/core/esmf-aspect-model-document-generators/src/test/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGeneratorTest.java b/core/esmf-aspect-model-document-generators/src/test/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGeneratorTest.java index 5ddd6b072..21da98df1 100644 --- a/core/esmf-aspect-model-document-generators/src/test/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGeneratorTest.java +++ b/core/esmf-aspect-model-document-generators/src/test/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGeneratorTest.java @@ -37,7 +37,6 @@ import java.util.stream.IntStream; import java.util.stream.LongStream; import java.util.stream.Stream; - import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory;