Skip to content

Commit bad6d2f

Browse files
authored
Merge pull request #807 from bci-oss/806-see-references-to-elements-are-resolved
`samm:see` references to elements are resolved
2 parents 77087f4 + 48b3bb0 commit bad6d2f

File tree

7 files changed

+31
-14
lines changed

7 files changed

+31
-14
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,17 @@ public static Model getModelElementDefinition( final Resource element ) {
7878
return result;
7979
}
8080

81+
public static Set<AspectModelUrn> getAllUrnsInModelExceptOnlyReferencedBySee( final Model model ) {
82+
return Streams.stream( model.listStatements() )
83+
.flatMap( statement -> statement.getPredicate().equals( SammNs.SAMM.see() )
84+
? Stream.of( statement.getSubject() )
85+
: Stream.of( statement.getSubject(), statement.getPredicate(), statement.getObject() ) )
86+
.filter( RDFNode::isURIResource )
87+
.map( node -> node.asResource().getURI() )
88+
.flatMap( urn -> AspectModelUrn.from( urn ).toJavaOptional().stream() )
89+
.collect( toSet() );
90+
}
91+
8192
public static Set<AspectModelUrn> getAllUrnsInModel( final Model model ) {
8293
return Streams.stream( model.listStatements() )
8394
.flatMap( statement -> Stream.of( statement.getSubject(), statement.getPredicate(), statement.getObject() ) )

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ private void urnsFromModelNeedResolution( final AspectModelFile modelFile, final
520520
.filter( uri -> uri.startsWith( AspectModelUrn.PROTOCOL_AND_NAMESPACE_PREFIX ) )
521521
.forEach( urn -> context.resolvedUrns().add( urn ) );
522522

523-
RdfUtil.getAllUrnsInModel( modelFile.sourceModel() ).stream()
523+
RdfUtil.getAllUrnsInModelExceptOnlyReferencedBySee( modelFile.sourceModel() ).stream()
524524
.map( AspectModelUrn::toString )
525525
.filter( urn -> !context.resolvedUrns().contains( urn ) )
526526
.filter( urn -> !SammNs.wellKnownNamespaces().map( rdfNamespace -> urn.startsWith( rdfNamespace.getNamespace() ) )

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ void testLoadAspectExpectSuccess( final TestAspect aspect ) {
5050

5151
@Test
5252
void testAspectTransformationExpectSuccess() {
53-
final Aspect aspect = loadAspect( TestAspect.ASPECT_WITH_SEE );
54-
final AspectModelUrn expectedAspectModelUrn = TestAspect.ASPECT_WITH_SEE.getUrn();
55-
assertBaseAttributes( aspect, expectedAspectModelUrn, "AspectWithSee", "Test Aspect With See",
56-
"This is a test description", "http://example.com/" );
53+
final Aspect aspect = loadAspect( TestAspect.ASPECT_WITH_SEE_ATTRIBUTE );
54+
final AspectModelUrn expectedAspectModelUrn = TestAspect.ASPECT_WITH_SEE_ATTRIBUTE.getUrn();
55+
assertBaseAttributes( aspect, expectedAspectModelUrn, "AspectWithSeeAttribute", "Test Aspect",
56+
"This is a test Aspect.", "http://example.com/" );
5757
}
5858

5959
@Test

core/esmf-aspect-meta-model-java/src/test/java/org/eclipse/esmf/aspectmodel/resolver/AspectModelResolverTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.eclipse.esmf.metamodel.vocabulary.SammNs;
3535
import org.eclipse.esmf.samm.KnownVersion;
3636
import org.eclipse.esmf.test.InvalidTestAspect;
37+
import org.eclipse.esmf.test.TestAspect;
3738
import org.eclipse.esmf.test.TestModel;
3839
import org.eclipse.esmf.test.TestResources;
3940

@@ -245,4 +246,11 @@ void getExceptionWhileLoadingModelWithTwoAspects() {
245246
"Aspect Model file testmodel:invalid/org.eclipse.esmf.test/1.0.0/InvalidAspectWithTwoAspects.ttl contains 2 "
246247
+ "aspects, but may only contain one." );
247248
}
249+
250+
@Test
251+
void testSeeReferencesAreNotResolved() {
252+
assertThatCode( () -> {
253+
TestResources.load( TestAspect.ASPECT_WITH_SEE_TO_ELEMENT );
254+
} ).doesNotThrowAnyException();
255+
}
248256
}

core/esmf-test-aspect-models/src/main/java/org/eclipse/esmf/test/TestAspect.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ public enum TestAspect implements TestModel {
175175
ASPECT_WITH_REGULAR_EXPRESSION_CONSTRAINT,
176176
ASPECT_WITH_RUBY_GEM_UPDATE_COMMAND,
177177
ASPECT_WITH_SCRIPT_TAGS,
178-
ASPECT_WITH_SEE,
179178
ASPECT_WITH_SEE_ATTRIBUTE,
179+
ASPECT_WITH_SEE_TO_ELEMENT,
180180
ASPECT_WITH_SET,
181181
ASPECT_WITH_SIMPLE_ENTITY,
182182
ASPECT_WITH_SIMPLE_PROPERTIES,
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@
1212
@prefix : <urn:samm:org.eclipse.esmf.test:1.0.0#> .
1313
@prefix samm: <urn:samm:org.eclipse.esmf.samm:meta-model:2.2.0#> .
1414
@prefix samm-c: <urn:samm:org.eclipse.esmf.samm:characteristic:2.2.0#> .
15-
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
16-
@prefix unit: <urn:samm:org.eclipse.esmf.samm:unit:2.2.0#> .
1715

18-
:AspectWithSee a samm:Aspect ;
19-
samm:preferredName "Test Aspect With See"@en ;
20-
samm:description "This is a test description"@en ;
21-
samm:see <http://example.com/> ;
16+
:AspectWithSeeToElement a samm:Aspect ;
17+
samm:preferredName "Test Aspect"@en ;
18+
samm:description "This is a test Aspect."@en ;
19+
samm:see <urn:samm:org.eclipse.test:1.0.0#NonExistingElement> ;
2220
samm:properties ( ) ;
23-
samm:operations ( ) .
21+
samm:operations ( ) .

tools/esmf-aspect-model-maven-plugin/src/test/resources/validate-pom-multiple-aspect-models/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<include>urn:samm:org.eclipse.esmf.test:1.0.0#AspectWithBlankNode</include>
3434
<include>urn:samm:org.eclipse.esmf.test:1.0.0#AspectWithComplexSet</include>
3535
<include>urn:samm:org.eclipse.esmf.test:1.0.0#AspectWithList</include>
36-
<include>urn:samm:org.eclipse.esmf.test:1.0.0#AspectWithSee</include>
36+
<include>urn:samm:org.eclipse.esmf.test:1.0.0#AspectWithSeeAttribute</include>
3737
</includes>
3838
</configuration>
3939
</plugin>

0 commit comments

Comments
 (0)