package automenta.spacenet.plugin.groovy;
public class GroovyScope {
// private static final Logger logger = Logger.getLogger(GroovyScope.class);
//
// private GroovyShell shell;
// private Binding groovyBinding;
// private WhenMapEntriesChange<Object, Object> whenBindingChanges;
//
//
// public GroovyScope() {
// super();
// }
//
//
// @Override
// public void stop() {
//
// }
//
//
// @Override public void start(Scope superNode) {
//
// updateBinding();
//
// shell = new GroovyShell(groovyBinding);
// }
//
// private void updateBinding() {
// groovyBinding = new Binding();
//
// whenBindingChanges = new WhenMapEntriesChange<Object, Object>(this.getObjects()) {
//
// @Override public void afterMapPut(Entry<Object, Object>... entry) {
// for (Entry<Object,Object> e : entry) {
// String name;
// if (e.getKey() instanceof String) {
// name = e.getKey().toString();
// }
// else {
// name = e.getValue().getClass().getSimpleName() + "-" + e.getValue().hashCode();
// }
//
// groovyBinding.setVariable(name, e.getValue());
// }
// }
//
// @Override public void beforeMapRemoves(Entry<Object, Object>... entry) {
// for (Entry<Object,Object> e : entry) {
// logger.warn("unable to remove binding: " + e.getKey() + "->" + e.getValue());
// }
// }
//
// };
//
// }
//
//
// public Object evaluate(Object value) {
// String expression = null;
// if (value instanceof StringVar) {
// StringVar text = (StringVar)value;
// expression = text.get();
//
// }
// else if (value instanceof String) {
// expression = (String)value;
// }
//
// if (expression!=null) {
// try {
// Object result = shell.evaluate(expression);
// return result;
// }
// catch (Exception e) {
// e.printStackTrace();
// return e;// + "\n" + Arrays.asList(e.getStackTrace());
// }
// }
// return value;
// }
//
//
// public void bind(String name, Object object) {
// groovyBinding.setVariable(name, object);
//
// }
//
}