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
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
\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