]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.server/src/org/simantics/document/server/Functions.java
Merge "Set tycho-packaging-plugin qualifier format to 'v'yyyyMMdd-HHmmss"
[simantics/platform.git] / bundles / org.simantics.document.server / src / org / simantics / document / server / Functions.java
index 2fd422f5eb5447df01bbe491fd5349e5b861f0c8..e374b700f9a821168ac14811d44c436b36ae390b 100644 (file)
@@ -29,7 +29,7 @@ import org.simantics.db.layer0.function.All;
 import org.simantics.db.layer0.request.ProjectModels;\r
 import org.simantics.db.layer0.request.VariableProperty;\r
 import org.simantics.db.layer0.request.VariableRead;\r
-import org.simantics.db.layer0.request.VariableValue;\r
+import org.simantics.db.layer0.request.VariableValueWithBinding;\r
 import org.simantics.db.layer0.variable.ConstantPropertyVariable;\r
 import org.simantics.db.layer0.variable.ProxyChildVariable;\r
 import org.simantics.db.layer0.variable.ProxySessionRequest;\r
@@ -185,6 +185,13 @@ public class Functions {
        return Variables.getVariable(graph, uri);\r
     }\r
     \r
+    public static Variable stateVariable(ReadGraph graph, Variable self) throws DatabaseException {\r
+       Variable session = graph.syncRequest(new ProxySessionRequest(self));\r
+       if (session == null)\r
+               throw new DatabaseException("No state for " + self.getURI(graph));\r
+       return session.getPossibleChild(graph, "__scl__");\r
+    }\r
+    \r
     @SCLValue(type = "ReadGraph -> Resource -> Variable -> Variable")\r
     public static Variable state(ReadGraph graph, Resource converter, Variable context) throws DatabaseException {\r
        Variable session = graph.syncRequest(new ProxySessionRequest(context));\r
@@ -1064,7 +1071,7 @@ public class Functions {
     \r
     public static Object getPropertyValueCached(ReadGraph graph, Variable variable, String name, Binding binding) throws DatabaseException {\r
        Variable property = graph.syncRequest(new VariableProperty(variable, name));\r
-       return graph.syncRequest(new VariableValue<Object>(property));\r
+       return graph.syncRequest(new VariableValueWithBinding<Object>(property, binding));\r
     }\r
 \r
     public static class ParentExistsRequest extends VariableRead<Boolean> {\r