import org.simantics.db.ReadGraph;
import org.simantics.db.exception.DatabaseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class ProxyVariables {
-
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ProxyVariables.class);
+
+ public static Variable tryToOwn(ReadGraph graph, Variable parent, Variable variable) {
+ if (variable instanceof ProxyVariableSupport) {
+ ProxyVariableSupport pvs = (ProxyVariableSupport) variable;
+ return pvs.attachTo(graph, parent);
+ }
+ return null;
+ }
+
+ public static Variable tryToOwnRenamed(ReadGraph graph, Variable parent, Variable variable, String name) {
+ if (variable instanceof ProxyVariableSupport) {
+ ProxyVariableSupport pvs = (ProxyVariableSupport) variable;
+ return pvs.attachToRenamed(graph, parent, name);
+ }
+ return null;
+ }
+
public static Variable inputVariable(ReadGraph graph, Variable context) throws DatabaseException {
Variable session = graph.syncRequest(new ProxySessionRequest(context));
if(session == null) return null;
}
public static Variable proxySessionVariable(ReadGraph graph, Variable variable) throws DatabaseException {
-
- try {
-
- Variable child = variable.getParent(graph);
- Variable parent = child.getParent(graph);
- if(parent instanceof ProxyChildVariable) {
- Variable var = ((ProxyChildVariable)parent).other();
- if(var.getParent(graph) == null) {
- return null;
- }
- return var;
- } else {
- Variable input = parent.getPossiblePropertyValue(graph, "session");
- if(input == null) {
- System.out.println("null input for: " + parent.getURI(graph));
- }
- return input;
- }
+ try {
+ return proxyVariableInput(graph, variable);
} catch (Throwable t) {
- t.printStackTrace();
+ LOGGER.error("proxySessionVariable failed", t);
return null;
}
}
} catch (Throwable t) {
- t.printStackTrace();
+ LOGGER.error("proxyVariableBase failed", t);
return null;
}
} else {
Variable parent = variable.getParent(graph);
if(parent == null) return null;
- else return proxyVariableBase(graph, parent);
+ else return proxyVariableInput(graph, parent);
}
}
}
} catch (Throwable t) {
- t.printStackTrace();
+ LOGGER.error("proxyVariableRoot failed", t);
return null;
}
return proxyVariableRoot(graph, variable) != null;
}
-
}