X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.graph%2Fsrc%2Forg%2Fsimantics%2Fgraph%2Frefactoring%2FGraphRefactoringUtils.java;h=90b134e33762b5f991baa5288a2974906f2bad7b;hp=ddc31aa5b15811722b65b785886b871e31c4053b;hb=1cc487c3f6cf4b46b1fdd727183a9483e3bc05bb;hpb=e8269f6cba002c702c25d80db5399b5b50b97ab9 diff --git a/bundles/org.simantics.graph/src/org/simantics/graph/refactoring/GraphRefactoringUtils.java b/bundles/org.simantics.graph/src/org/simantics/graph/refactoring/GraphRefactoringUtils.java index ddc31aa5b..90b134e33 100644 --- a/bundles/org.simantics.graph/src/org/simantics/graph/refactoring/GraphRefactoringUtils.java +++ b/bundles/org.simantics.graph/src/org/simantics/graph/refactoring/GraphRefactoringUtils.java @@ -1,6 +1,5 @@ package org.simantics.graph.refactoring; -import java.util.ArrayList; import java.util.Arrays; import org.simantics.databoard.util.URIStringUtils; @@ -11,14 +10,10 @@ import org.simantics.graph.query.UriUtils; import org.simantics.graph.refactoring.MappingSpecification.MappingRule; import org.simantics.graph.representation.External; import org.simantics.graph.representation.Identity; -import org.simantics.graph.representation.IdentityDefinition; import org.simantics.graph.representation.Internal; -import org.simantics.graph.representation.Optional; import org.simantics.graph.representation.Root; import org.simantics.graph.representation.TransferableGraph1; import org.simantics.graph.representation.TransferableGraphUtils; -import org.simantics.graph.representation.old.OldTransferableGraph1; -import org.simantics.graph.representation.old.OldValue1; import org.simantics.graph.store.GraphStore; import org.simantics.graph.store.IdentityStore; import org.slf4j.Logger; @@ -133,6 +128,22 @@ public class GraphRefactoringUtils { return; + } else if (ext.type.startsWith("http://")) { + String first = "http://Projects/Development Project"; + Identity path = recursePath(tg, first); + id.definition = new Internal(path.resource, ext.name); + + GraphStore store = TransferableGraphConversion.convert(tg); + int rootId = store.identities.createPathToId(UriUtils.uriToPath(first + "/" + ext.name)); + propagateNewMarks(store.identities, rootId); + + TransferableGraph1 tgNew = TransferableGraphConversion.convert(store); + + tg.resourceCount = tgNew.resourceCount; + tg.identities = tgNew.identities; + tg.values = tgNew.values; + tg.statements = tgNew.statements; + } } } @@ -159,69 +170,4 @@ public class GraphRefactoringUtils { } } - public static void compactify(OldTransferableGraph1 tg, - TIntHashSet removed) { - // Filter removed set - for(Identity id : tg.identities) { - IdentityDefinition def = id.definition; - if(def instanceof Root) - removed.remove(id.resource); - else if(def instanceof External) - removed.remove(((External)def).parent); - else if(def instanceof Internal) - removed.remove(((Internal)def).parent); - else if(def instanceof Optional) - removed.remove(((Optional)def).parent); - } - for(int r : tg.statements) - removed.remove(r); - for(OldValue1 value : tg.values) - removed.remove(value.resource); - - // Compactify - if(!removed.isEmpty()) { - // create map - int resourceCount = tg.resourceCount; - int[] map = new int[resourceCount]; - for(int i=0;i newIdentities = new ArrayList(tg.identities.length); - for(Identity id : tg.identities) { - if(removed.contains(id.resource)) - continue; - else - newIdentities.add(id); - id.resource = map[id.resource]; - IdentityDefinition def = id.definition; - if(def instanceof External) { - External d = (External)def; - d.parent = map[d.parent]; - } - else if(def instanceof Internal) { - External d = (External)def; - d.parent = map[d.parent]; - } - else if(def instanceof Optional) { - External d = (External)def; - d.parent = map[d.parent]; - } - } - tg.identities = newIdentities.toArray(new Identity[newIdentities.size()]); - int[] statements = tg.statements; - for(int i=0;i= 0) - statements[i] = map[r]; - } - for(OldValue1 value : tg.values) - value.resource = map[value.resource]; - tg.resourceCount = resourceCount; - } - } - }