*\r
* Contributors:\r
* VTT Technical Research Centre of Finland - initial API and implementation\r
+ * Semantum Oy\r
*******************************************************************************/\r
package org.simantics.r;\r
\r
import org.simantics.db.ReadGraph;\r
import org.simantics.db.Resource;\r
import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.variable.NodeManagerVariableBuilder;\r
+import org.simantics.db.layer0.variable.NodeSupport;\r
import org.simantics.db.layer0.variable.StandardGraphChildVariable;\r
import org.simantics.db.layer0.variable.Variable;\r
-import org.simantics.db.layer0.variable.VariableBuilder;\r
import org.simantics.db.layer0.variable.VariableNode;\r
import org.simantics.layer0.Layer0;\r
import org.simantics.r.scl.RSession;\r
import org.simantics.r.scl.variable.RVariableNode;\r
import org.simantics.simulator.variable.NodeManager;\r
\r
-public class RVariableBuilder implements VariableBuilder {\r
+public class RVariableBuilder extends NodeManagerVariableBuilder {\r
\r
@Override\r
public Variable buildChild(ReadGraph graph, Variable parent, VariableNode node, Resource child) throws DatabaseException {\r
}\r
}\r
\r
+ NodeSupport<?> support = getNodeSupport(graph, name);\r
NodeManager<RVariableNode> nodeManager = session.getNodeManager();\r
- return new StandardGraphChildVariable(parent, new VariableNode(nodeManager, /*node=*/nodeManager), child);\r
+ return new StandardGraphChildVariable(parent, new VariableNode(support, nodeManager), child);\r
}\r
\r
@Override\r
- public Variable buildProperty(ReadGraph graph, Variable parent, VariableNode node, Resource subject, Resource predicate) throws DatabaseException {\r
- throw new UnsupportedOperationException();\r
+ protected NodeSupport<?> getNodeSupport(ReadGraph graph, String sessionName) throws DatabaseException {\r
+ return RSessionManager.getOrCreateNodeSupport(sessionName);\r
+ }\r
+\r
+ @Override\r
+ protected Object getRoot(ReadGraph graph, NodeSupport<?> support, String sessionName) throws DatabaseException {\r
+ return support.manager;\r
}\r
\r
}\r