]> gerrit.simantics Code Review - simantics/platform.git/commitdiff
CompilePGraphs takes previous bundled version of ontology 25/525/2
authorAntti Villberg <antti.villberg@semantum.fi>
Mon, 15 May 2017 07:53:28 +0000 (10:53 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Mon, 15 May 2017 14:18:56 +0000 (17:18 +0300)
#7229

Change-Id: I71520cf139aa4131031a59bd377ca82410d36044

bundles/org.simantics.modeling/src/org/simantics/modeling/CompilePGraphs.java

index 9b620c2f7c55e39e0d789b6d926759b8939d475a..10e23c65bbd72340277652d8c9618ab4f7032147 100644 (file)
@@ -89,21 +89,10 @@ public class CompilePGraphs {
         final Collection<ISource> sources = new ArrayList<>();
         Collection<TransferableGraph1> dependencies = new ArrayList<>();
 
-        for (Bundle b : Activator.getContext().getBundles()) {
-            URL tg = b.getEntry("/graph.tg");
-            if (tg == null) continue;
-            File f = url2file(FileLocator.resolve(tg), b.getSymbolicName());
-            try {
-                dependencies.add(GraphCompiler.read(f));
-            } catch (Exception e) {
-                throw new IOException("Failed to read compiled transferable graph as dependency: " + f, e);
-            }
-        }
-
-        final TransferableGraph1 thisOntology = Simantics.sync(new UniqueRead<TransferableGraph1>() {
+        final Pair<String, TransferableGraph1> thisOntology = Simantics.sync(new UniqueRead<Pair<String, TransferableGraph1>>() {
 
             @Override
-            public TransferableGraph1 perform(ReadGraph graph) throws DatabaseException {
+            public Pair<String, TransferableGraph1> perform(ReadGraph graph) throws DatabaseException {
                 Layer0 L0 = Layer0.getInstance(graph);
                 Resource parent = graph.getSingleObject(r, L0.PartOf);
 
@@ -130,12 +119,13 @@ public class CompilePGraphs {
                     }
                 };
 
+                String uri = graph.getURI(r);
                 SimanticsClipboardImpl clipboard = new SimanticsClipboardImpl();
                 ch.copyToClipboard(graph, clipboard);
                 for (Set<Representation> object : clipboard.getContents()) {
                     TransferableGraph1 tg = ClipboardUtils.accept(graph, object, SimanticsKeys.KEY_TRANSFERABLE_GRAPH);
                     if (tg != null)
-                        return tg;
+                        return Pair.make(uri, tg);
                 }
 
                 return null;
@@ -145,7 +135,24 @@ public class CompilePGraphs {
         if (thisOntology == null)      
             throw new DatabaseException("Failed to dump the containing ontology of " + r + " into TransferableGraph1");
 
-        dependencies.add(thisOntology);
+        dependencies.add(thisOntology.second);
+        
+        for (Bundle b : Activator.getContext().getBundles()) {
+                       String id = b.getSymbolicName();
+                       String name = (String) b.getHeaders().get("Bundle-Name");
+                       if (name == null) name = id;
+                       if (name.equals(thisOntology.first))
+                               continue;
+            URL tg = b.getEntry("/graph.tg");
+            if (tg == null) continue;
+            File f = url2file(FileLocator.resolve(tg), b.getSymbolicName());
+            try {
+                dependencies.add(GraphCompiler.read(f));
+            } catch (Exception e) {
+                throw new IOException("Failed to read compiled transferable graph as dependency: " + f, e);
+            }
+        }
+
 
         Simantics.sync(new ReadRequest() {
             @Override