X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.document.server%2Fsrc%2Forg%2Fsimantics%2Fdocument%2Fserver%2FFunctions.java;h=e374b700f9a821168ac14811d44c436b36ae390b;hb=b48839dfe2256ce361db6194f51e11b3363be5fa;hp=3892b50151a94b036d3a0a3460119cc3d6beaf85;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.document.server/src/org/simantics/document/server/Functions.java b/bundles/org.simantics.document.server/src/org/simantics/document/server/Functions.java index 3892b5015..e374b700f 100644 --- a/bundles/org.simantics.document.server/src/org/simantics/document/server/Functions.java +++ b/bundles/org.simantics.document.server/src/org/simantics/document/server/Functions.java @@ -29,7 +29,7 @@ import org.simantics.db.layer0.function.All; import org.simantics.db.layer0.request.ProjectModels; import org.simantics.db.layer0.request.VariableProperty; import org.simantics.db.layer0.request.VariableRead; -import org.simantics.db.layer0.request.VariableValue; +import org.simantics.db.layer0.request.VariableValueWithBinding; import org.simantics.db.layer0.variable.ConstantPropertyVariable; import org.simantics.db.layer0.variable.ProxyChildVariable; import org.simantics.db.layer0.variable.ProxySessionRequest; @@ -185,9 +185,18 @@ public class Functions { return Variables.getVariable(graph, uri); } + public static Variable stateVariable(ReadGraph graph, Variable self) throws DatabaseException { + Variable session = graph.syncRequest(new ProxySessionRequest(self)); + if (session == null) + throw new DatabaseException("No state for " + self.getURI(graph)); + return session.getPossibleChild(graph, "__scl__"); + } + @SCLValue(type = "ReadGraph -> Resource -> Variable -> Variable") public static Variable state(ReadGraph graph, Resource converter, Variable context) throws DatabaseException { Variable session = graph.syncRequest(new ProxySessionRequest(context)); + if (session == null) + throw new DatabaseException("No state for " + context.getURI(graph)); return session.getPossibleChild(graph, "__scl__"); } @@ -1062,7 +1071,7 @@ public class Functions { public static Object getPropertyValueCached(ReadGraph graph, Variable variable, String name, Binding binding) throws DatabaseException { Variable property = graph.syncRequest(new VariableProperty(variable, name)); - return graph.syncRequest(new VariableValue(property)); + return graph.syncRequest(new VariableValueWithBinding(property, binding)); } public static class ParentExistsRequest extends VariableRead {