1 package org.simantics.db.layer0.variable;
\r
3 import org.simantics.databoard.util.Bean;
\r
4 import org.simantics.db.ReadGraph;
\r
5 import org.simantics.db.Resource;
\r
6 import org.simantics.db.exception.DatabaseException;
\r
7 import org.simantics.db.service.SerialisationSupport;
\r
9 public class VariableBean extends Bean {
\r
11 final public long context;
\r
12 final public String rvi;
\r
13 final transient public Variable variable;
\r
15 public VariableBean(ReadGraph graph, Variable variable) throws DatabaseException {
\r
17 Variable context = Variables.getPossibleContext(graph, variable);
\r
18 if(context != null) {
\r
19 RVI rvi = variable.getRVI(graph);
\r
20 Resource contextResource = context.getRepresents(graph);
\r
21 this.context = contextResource.getResourceId();
\r
22 this.rvi = rvi.toString();
\r
25 this.rvi = variable.getURI(graph);
\r
28 this.variable = variable;
\r
32 public Variable getVariable(ReadGraph graph) throws DatabaseException {
\r
34 Resource contextResource = graph.getService(SerialisationSupport.class).getResource(context);
\r
35 Variable context = Variables.getVariable(graph, contextResource);
\r
36 RVI rvi = RVI.fromResourceFormat(graph, this.rvi);
\r
37 return rvi.resolve(graph, context);
\r
39 return Variables.getVariable(graph, rvi);
\r
43 public Variable getVariable() {
\r