Skip to content

Commit c89278d

Browse files
authored
Merge pull request #169 from bci-oss/166-loading-model-with-old-meta-model-version-fails
Remove requirement for bamm prefixes for model version migration
2 parents fea406f + a12cb1f commit c89278d

File tree

1 file changed

+14
-11
lines changed
  • core/sds-aspect-meta-model-version-migrator/src/main/java/io/openmanufacturing/sds/aspectmodel/versionupdate/migrator

1 file changed

+14
-11
lines changed

core/sds-aspect-meta-model-version-migrator/src/main/java/io/openmanufacturing/sds/aspectmodel/versionupdate/migrator/AbstractUriRewriter.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
package io.openmanufacturing.sds.aspectmodel.versionupdate.migrator;
1515

1616
import java.util.AbstractMap;
17+
import java.util.HashMap;
1718
import java.util.Map;
1819
import java.util.Optional;
1920
import java.util.stream.Collectors;
@@ -63,17 +64,19 @@ protected RDFNode updateRdfNode( final RDFNode rdfNode, final Map<String, String
6364
public Model migrate( final Model sourceModel ) {
6465
final Model targetModel = ModelFactory.createDefaultModel();
6566

66-
final Map<String, String> targetPrefixes;
67-
targetPrefixes = Namespace.createPrefixMap( getTargetKnownVersion() );
68-
69-
final Map<String, String> oldToNewNamespaces =
70-
Namespace.createPrefixMap( getSourceKnownVersion() )
71-
.keySet()
72-
.stream()
73-
.filter( prefix -> sourceModel.getNsPrefixURI( prefix ) != null )
74-
.map( prefix -> new AbstractMap.SimpleEntry<>( sourceModel.getNsPrefixURI( prefix ), targetPrefixes.get( prefix ) ) )
75-
.filter( entry -> !entry.getKey().equals( entry.getValue() ) )
76-
.collect( Collectors.toMap( AbstractMap.SimpleEntry::getKey, AbstractMap.SimpleEntry::getValue ) );
67+
final Map<String, String> targetPrefixes = Namespace.createPrefixMap( getTargetKnownVersion() );
68+
69+
final Map<String, String> sourcePrefixes = Namespace.createPrefixMap( getSourceKnownVersion() );
70+
final Map<String, String> oldToNewNamespaces = new HashMap<>();
71+
for ( final Map.Entry<String, String> targetEntry : targetPrefixes.entrySet() ) {
72+
final String prefix = targetEntry.getKey();
73+
if ( prefix != null ) {
74+
final String sourceUri = sourcePrefixes.get( prefix );
75+
if ( sourceUri != null && !sourceUri.equals( targetEntry.getValue() )) {
76+
oldToNewNamespaces.put( sourceUri, targetEntry.getValue() );
77+
}
78+
}
79+
}
7780

7881
Streams.stream( sourceModel.listStatements() ).map( statement -> targetModel
7982
.createStatement(

0 commit comments

Comments
 (0)