/* * */ package org.jbpm.pvm.internal.script; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; import javax.script.Bindings; import org.jbpm.pvm.internal.env.EnvironmentImpl; /** * @author Tom Baeyens * @author Huisheng Xu */ public class EnvironmentBindings implements Bindings { protected EnvironmentImpl environment; public EnvironmentBindings(String[] readContextNames, String writeContextName) { environment = EnvironmentImpl.getCurrent(); } public Object get(Object key) { Object v = environment.get((String) key); if(v != null){ return v; } v = vars.get(key); return v; } public boolean containsKey(Object key) { return get(key) != null; } private HashMap vars = new HashMap(); public Object put(String key, Object value) { boolean bypass = false; // bypass = "context".equals(key) ? true : bypass; if(bypass){ return environment.get(key); }else{ // vars.put(key, value); return vars.get(key); } } public void putAll(Map toMerge) { // ignore puts } public Object remove(Object key) { vars.remove(key); return null; } public void clear() { vars.clear(); } public boolean containsValue(Object value) { return vars.containsValue(value); } public Set> entrySet() { return vars.entrySet(); } public boolean isEmpty() { return true; } public Set keySet() { return vars.keySet(); } public int size() { return vars.size(); } public Collection values() { return vars.values(); } }