]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.db/src/org/simantics/scl/db/SCLFunctions.java
Playground for Antti.
[simantics/platform.git] / bundles / org.simantics.scl.db / src / org / simantics / scl / db / SCLFunctions.java
index e20dfc471ad9ea28831463f00bc9bfc220d8704a..92bbb74268865f88ba359803b248ac1304b5d774 100644 (file)
@@ -3,6 +3,7 @@ package org.simantics.scl.db;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.Callable;
 
 import org.cojen.classfile.TypeDesc;
 import org.simantics.Simantics;
@@ -151,6 +152,18 @@ public class SCLFunctions {
             SCLContext.pop();
         }
     }
+    
+    public static void runWithGraph(Object graph, Runnable r) {
+        final SCLContext context = SCLContext.getCurrent();
+        SCLContext.push(context);
+        Object oldGraph = context.put(GRAPH, graph);
+        try {
+            r.run();
+        } finally {
+            context.put(GRAPH, oldGraph);
+            SCLContext.pop();
+        }
+    }
 
     private static Object[] NO_ARGS = new Object[] { Tuple0.INSTANCE };