1 package org.simantics.scl.runtime.equations;
\r
3 import org.simantics.scl.runtime.SCLContext;
\r
4 import org.simantics.scl.runtime.function.Function;
\r
5 import org.simantics.scl.runtime.tuple.Tuple0;
\r
7 public interface EquationContext {
\r
8 void listenEquationVariable(String variableName, Function callback);
\r
9 void setEquationVariable(String variableName, Object value);
\r
11 public static Object applyEquationContext(Function f, EquationContext equationContext) {
\r
12 SCLContext context = SCLContext.getCurrent();
\r
13 Object oldEquationContext = context.put("equation", equationContext);
\r
15 return f.apply(Tuple0.INSTANCE);
\r
17 context.put("equation", oldEquationContext);
\r