]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.graph.db/src/org/simantics/graph/db/StreamingTransferableGraphImportProcess.java
Merge "(refs #7307) Added features field to SCL module header"
[simantics/platform.git] / bundles / org.simantics.graph.db / src / org / simantics / graph / db / StreamingTransferableGraphImportProcess.java
index 4894467e3d1260aa25d4239349942542000ede22..9a819635463a8703651465c312bc688b3622326f 100644 (file)
@@ -163,8 +163,8 @@ public class StreamingTransferableGraphImportProcess implements TransferableGrap
        void addMissing(int handleIndex, String external) {
                allMissingExternals.put(external, handleIndex);
                Set<String> removals = new HashSet<>();
-               for(String ext : missingExternals) if(ext.startsWith(external)) return;
-               for(String ext : missingExternals) if(external.startsWith(ext)) removals.add(ext);
+               for(String ext : missingExternals) if(ext.startsWith(external + "/")) return;
+               for(String ext : missingExternals) if(external.startsWith(ext + "/")) removals.add(ext);
                missingExternals.removeAll(removals);
                missingExternals.add(external);
        }
@@ -210,18 +210,18 @@ public class StreamingTransferableGraphImportProcess implements TransferableGrap
                                                    TransientCacheAsyncListener.instance()); 
                                                        Resource child = childMap.get(def.name); 
                                                        if(child == null) {
-                                                               addMissing(identity.resource, graph.getURI(parent) + "/" + def.name);
+                                                               addMissing(identity.resource, graph.getURI(parent) + "/" + URIStringUtils.escape(def.name));
                                                        } else {
                                                                handles[identity.resource] = builder.handle(child);
                                                        }
                                                } else {
-                                                   addMissing(identity.resource, TransferableGraphUtils.getURI(resourceCount, identityMap, def.parent) + "/" + def.name);
+                                                   addMissing(identity.resource, TransferableGraphUtils.getURI(resourceCount, identityMap, def.parent) + "/" + URIStringUtils.escape(def.name));
                                                }
                                        }
                                }
                        }
                        else if(definition instanceof Internal) {
-                               String uri = TransferableGraphUtils.getTrueURI(resourceCount, identityMap, identity.resource);
+                               String uri = TransferableGraphUtils.getURI(resourceCount, identityMap, identity.resource);
                                Resource existing = graph.getPossibleResource(uri);
                                if(existing != null) {
                                        existingInternalMap.put(identity.resource, existing);
@@ -355,7 +355,7 @@ public class StreamingTransferableGraphImportProcess implements TransferableGrap
 
                                Resource nameResource = graph.newResource();
                                graph.claim(nameResource, InstanceOf, null, String);
-                               graph.claimValue(nameResource, parts[1], WriteBindings.STRING);
+                               graph.claimValue(nameResource, URIStringUtils.unescape(parts[1]), WriteBindings.STRING);
                                graph.claim(childResource, HasName, NameOf, nameResource);
 
                                graph.claim(parent, ConsistsOf, PartOf, childResource);