Skip to content

Commit 1d810d7

Browse files
authored
Merge pull request #727 from bci-oss/726-scalar-value-source-file-is-null
Correctly return the source file for ScalarValue objects
2 parents 867fbe0 + 431383e commit 1d810d7

File tree

6 files changed

+20
-13
lines changed

6 files changed

+20
-13
lines changed

core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/Instantiator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,9 @@ protected Value buildValue( final RDFNode node, final Optional<Resource> charact
164164
}
165165

166166
if ( node.isResource() ) {
167-
Resource resource = node.asResource();
168-
167+
final Resource resource = node.asResource();
169168
if ( resource.hasProperty( RDF.type, SammNs.SAMM.Value() ) ) {
170-
Optional<String> valueOpt = optionalAttributeValue( resource, SammNs.SAMM.value() ).map( Statement::getString );
169+
final Optional<String> valueOpt = optionalAttributeValue( resource, SammNs.SAMM.value() ).map( Statement::getString );
171170

172171
if ( valueOpt.isEmpty() ) {
173172
throw new AspectLoadingException( "samm:Value must contain a samm:value property" );

core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/aspectmodel/loader/instantiator/ScalarValueInstantiator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.apache.jena.rdf.model.Resource;
1111

1212
public class ScalarValueInstantiator extends Instantiator<ScalarValue> {
13-
1413
public ScalarValueInstantiator( final ModelElementFactory modelElementFactory ) {
1514
super( modelElementFactory, ScalarValue.class );
1615
}

core/esmf-aspect-meta-model-java/src/main/java/org/eclipse/esmf/metamodel/impl/DefaultScalarValue.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,9 @@ public Set<LangString> getDescriptions() {
6262
return metaModelBaseAttributes.getDescriptions();
6363
}
6464

65-
/**
66-
* Similar to {@link DefaultScalar#getSourceFile()}, scalar values are not defined in Aspect Model files, so this returns null.
67-
*
68-
* @return null
69-
*/
7065
@Override
7166
public AspectModelFile getSourceFile() {
72-
return null;
67+
return metaModelBaseAttributes.getSourceFile();
7368
}
7469

7570
@Override
@@ -90,7 +85,7 @@ public int compareTo( final ScalarValue other ) {
9085

9186
@SuppressWarnings( "unchecked" )
9287
private <T extends Comparable<T>> int compareTo( final Object value1, final Object value2 ) {
93-
return ((T) value1).compareTo( (T) value2 );
88+
return ( (T) value1 ).compareTo( (T) value2 );
9489
}
9590

9691
@Override

core/esmf-aspect-meta-model-java/src/test/java/org/eclipse/esmf/aspectmodel/loader/AspectModelLoaderTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.eclipse.esmf.metamodel.AbstractEntity;
3030
import org.eclipse.esmf.metamodel.AspectModel;
3131
import org.eclipse.esmf.metamodel.ComplexType;
32+
import org.eclipse.esmf.metamodel.ModelElement;
3233
import org.eclipse.esmf.metamodel.vocabulary.SammNs;
3334
import org.eclipse.esmf.test.InvalidTestAspect;
3435
import org.eclipse.esmf.test.TestAspect;
@@ -38,8 +39,23 @@
3839
import org.apache.jena.rdf.model.Resource;
3940
import org.apache.jena.rdf.model.Statement;
4041
import org.junit.jupiter.api.Test;
42+
import org.junit.jupiter.params.ParameterizedTest;
43+
import org.junit.jupiter.params.provider.EnumSource;
4144

4245
class AspectModelLoaderTest {
46+
@ParameterizedTest
47+
@EnumSource( value = TestAspect.class )
48+
void testLoadAspectModelsSourceFilesArePresent( final TestAspect testAspect ) {
49+
final AspectModel aspectModel = TestResources.load( testAspect );
50+
for ( final ModelElement element : aspectModel.elements() ) {
51+
assertThat( element.getSourceFile() )
52+
.describedAs( "Element %s has no source file", element ).isNotNull();
53+
assertThat( element.getSourceFile() )
54+
.describedAs( "Source file %s must contain defintion for %s", element.getSourceFile(), element.urn() )
55+
.elements().contains( element );
56+
}
57+
}
58+
4359
@Test
4460
void loadAspectModelWithoutCharacteristicDatatype() {
4561
assertThatThrownBy( () -> TestResources.load( InvalidTestAspect.INVALID_CHARACTERISTIC_DATATYPE ) )

core/esmf-aspect-model-document-generators/src/main/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGenerator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import java.util.function.BiFunction;
3737
import java.util.function.Supplier;
3838
import java.util.stream.Stream;
39-
4039
import javax.xml.datatype.DatatypeFactory;
4140
import javax.xml.datatype.Duration;
4241
import javax.xml.datatype.XMLGregorianCalendar;

core/esmf-aspect-model-document-generators/src/test/java/org/eclipse/esmf/aspectmodel/generator/json/AspectModelJsonPayloadGeneratorTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import java.util.stream.IntStream;
3838
import java.util.stream.LongStream;
3939
import java.util.stream.Stream;
40-
4140
import javax.xml.datatype.DatatypeConfigurationException;
4241
import javax.xml.datatype.DatatypeFactory;
4342

0 commit comments

Comments
 (0)