X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.graph%2Fsrc%2Forg%2Fsimantics%2Fgraph%2Frepresentation%2FTransferableGraphUtils.java;fp=bundles%2Forg.simantics.graph%2Fsrc%2Forg%2Fsimantics%2Fgraph%2Frepresentation%2FTransferableGraphUtils.java;h=82ac178fbdca32113993e7b2201ec2a81377aa71;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hp=86e7690a6cb52f580a1f4ea0c1d48f7b80d8a340;hpb=24e2b34260f219f0d1644ca7a138894980e25b14;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.graph/src/org/simantics/graph/representation/TransferableGraphUtils.java b/bundles/org.simantics.graph/src/org/simantics/graph/representation/TransferableGraphUtils.java index 86e7690a6..82ac178fb 100644 --- a/bundles/org.simantics.graph/src/org/simantics/graph/representation/TransferableGraphUtils.java +++ b/bundles/org.simantics.graph/src/org/simantics/graph/representation/TransferableGraphUtils.java @@ -1,175 +1,175 @@ -package org.simantics.graph.representation; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; - -public class TransferableGraphUtils { - - public static Collection getRoots(TransferableGraph1 tg) { - - ArrayList result = new ArrayList(); - for(Identity id : tg.identities) { - if(id.definition instanceof Root) result.add(id); - } - return result; - - } - - public static Identity findRootWithName(TransferableGraph1 tg, String name) { - - for(Identity id : tg.identities) { - if(id.definition instanceof Root) { - Root ext = (Root)id.definition; - if(ext.name.equals(name)) return id; - } - } - return null; - - } - - public static Identity findExternalWithName(TransferableGraph1 tg, String name) { - - for(Identity id : tg.identities) { - if(id.definition instanceof External) { - External ext = (External)id.definition; - if(ext.name.equals(name)) return id; - } - } - return null; - - } - - public static Identity findExternalWithNameAndParent(TransferableGraph1 tg, int parent, String name) { - - for(Identity id : tg.identities) { - if(id.definition instanceof External) { - External ext = (External)id.definition; - if(ext.name.equals(name) && ext.parent == parent) return id; - } - } - return null; - - } - - public static Identity findExternal(TransferableGraph1 tg, String uri) { - - Identity identity = findExternalWithName(tg, "http:/"); - if(identity == null) identity = findExternalWithName(tg, ""); - if(identity == null) identity = findRootWithName(tg, ""); - if("http:/".equals(uri)) return identity; - String[] tokens = uri.substring("http://".length()).split("/"); - for(String token : tokens) { - identity = findExternalWithNameAndParent(tg, identity.resource, token); - } - return identity; - - } - - public static Collection getChildren(TransferableGraph1 tg, Identity parent) { - ArrayList result = new ArrayList(); - System.err.println("children for " + parent.resource); - for(Identity id : tg.identities) { - if(id.definition instanceof Internal) { - Internal internal = (Internal)id.definition; - System.err.println("internal with parent " + internal.parent); - if(internal.parent == parent.resource) result.add(id); - } - } - findExternal(tg, "http://www.simantics.org/Layer0-1.1/ConsistsOf"); - for(int i=0;i getNames(TransferableGraph1 tg, Collection ids) { - Map result = new HashMap(); - for(Identity id : ids) { - if(id.definition instanceof Internal) { - Internal internal = (Internal)id.definition; - result.put(id, internal.name); - } - } - return result; - } - - public static String getName(TransferableGraph1 tg, Identity id) { - return getName(id); - } - - public static String getName(Identity id) { - if(id.definition instanceof Internal) { - Internal internal = (Internal)id.definition; - return internal.name; - } else if(id.definition instanceof External) { - External external = (External)id.definition; - return external.name; - } else if(id.definition instanceof Root) { - Root root = (Root)id.definition; - return root.name; - } else { - Optional optional = (Optional)id.definition; - return optional.name; - } - } - - public static String getRootType(Identity id) { - if(id.definition instanceof Root) { - Root root = (Root)id.definition; - return root.type; - } else { - throw new IllegalArgumentException("Expected root, got " + id); - } - } - - public static Value findValue(TransferableGraph1 tg, int subject) { - for(Value v : tg.values) { - if(v.resource == subject) return v; - } - return null; - } - - public static String getURI(TransferableGraph1 tg, int id) { - return getURI(tg.resourceCount, tg.identities, id); - } - - public static String getURI(int resourceCount, Identity[] identities, int id) { - for(Identity identity : identities) { - if(identity.resource == id) { - IdentityDefinition definition = identity.definition; - if(definition instanceof External) { - External def = (External)definition; - if(def.parent == -1) return "http:/"; - else return getURI(resourceCount, identities, def.parent) + "/" + def.name; - } else if(definition instanceof Root) { - Root def = (Root)definition; - return def.name; - } else if (definition instanceof Internal) { - Internal def = (Internal)definition; - System.err.println("External URI error: parent was internal '" + def.name + "'"); - return ""; - } else { - return ""; - } - } - } - return ":"; - } - -} +package org.simantics.graph.representation; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +public class TransferableGraphUtils { + + public static Collection getRoots(TransferableGraph1 tg) { + + ArrayList result = new ArrayList(); + for(Identity id : tg.identities) { + if(id.definition instanceof Root) result.add(id); + } + return result; + + } + + public static Identity findRootWithName(TransferableGraph1 tg, String name) { + + for(Identity id : tg.identities) { + if(id.definition instanceof Root) { + Root ext = (Root)id.definition; + if(ext.name.equals(name)) return id; + } + } + return null; + + } + + public static Identity findExternalWithName(TransferableGraph1 tg, String name) { + + for(Identity id : tg.identities) { + if(id.definition instanceof External) { + External ext = (External)id.definition; + if(ext.name.equals(name)) return id; + } + } + return null; + + } + + public static Identity findExternalWithNameAndParent(TransferableGraph1 tg, int parent, String name) { + + for(Identity id : tg.identities) { + if(id.definition instanceof External) { + External ext = (External)id.definition; + if(ext.name.equals(name) && ext.parent == parent) return id; + } + } + return null; + + } + + public static Identity findExternal(TransferableGraph1 tg, String uri) { + + Identity identity = findExternalWithName(tg, "http:/"); + if(identity == null) identity = findExternalWithName(tg, ""); + if(identity == null) identity = findRootWithName(tg, ""); + if("http:/".equals(uri)) return identity; + String[] tokens = uri.substring("http://".length()).split("/"); + for(String token : tokens) { + identity = findExternalWithNameAndParent(tg, identity.resource, token); + } + return identity; + + } + + public static Collection getChildren(TransferableGraph1 tg, Identity parent) { + ArrayList result = new ArrayList(); + System.err.println("children for " + parent.resource); + for(Identity id : tg.identities) { + if(id.definition instanceof Internal) { + Internal internal = (Internal)id.definition; + System.err.println("internal with parent " + internal.parent); + if(internal.parent == parent.resource) result.add(id); + } + } + findExternal(tg, "http://www.simantics.org/Layer0-1.1/ConsistsOf"); + for(int i=0;i getNames(TransferableGraph1 tg, Collection ids) { + Map result = new HashMap(); + for(Identity id : ids) { + if(id.definition instanceof Internal) { + Internal internal = (Internal)id.definition; + result.put(id, internal.name); + } + } + return result; + } + + public static String getName(TransferableGraph1 tg, Identity id) { + return getName(id); + } + + public static String getName(Identity id) { + if(id.definition instanceof Internal) { + Internal internal = (Internal)id.definition; + return internal.name; + } else if(id.definition instanceof External) { + External external = (External)id.definition; + return external.name; + } else if(id.definition instanceof Root) { + Root root = (Root)id.definition; + return root.name; + } else { + Optional optional = (Optional)id.definition; + return optional.name; + } + } + + public static String getRootType(Identity id) { + if(id.definition instanceof Root) { + Root root = (Root)id.definition; + return root.type; + } else { + throw new IllegalArgumentException("Expected root, got " + id); + } + } + + public static Value findValue(TransferableGraph1 tg, int subject) { + for(Value v : tg.values) { + if(v.resource == subject) return v; + } + return null; + } + + public static String getURI(TransferableGraph1 tg, int id) { + return getURI(tg.resourceCount, tg.identities, id); + } + + public static String getURI(int resourceCount, Identity[] identities, int id) { + for(Identity identity : identities) { + if(identity.resource == id) { + IdentityDefinition definition = identity.definition; + if(definition instanceof External) { + External def = (External)definition; + if(def.parent == -1) return "http:/"; + else return getURI(resourceCount, identities, def.parent) + "/" + def.name; + } else if(definition instanceof Root) { + Root def = (Root)definition; + return def.name; + } else if (definition instanceof Internal) { + Internal def = (Internal)definition; + System.err.println("External URI error: parent was internal '" + def.name + "'"); + return ""; + } else { + return ""; + } + } + } + return ":"; + } + +}