1 16 package scriptella.driver.jexl; 17 18 import org.apache.commons.jexl.JexlContext; 19 import scriptella.spi.ParametersCallback; 20 21 import java.util.Collection ; 22 import java.util.HashMap ; 23 import java.util.Map ; 24 import java.util.Set ; 25 26 35 public final class JexlContextMap implements ParametersCallback, JexlContext, Map <String , Object > { 36 private Map <String , Object > localVariables = new HashMap <String , Object >(); 37 private ParametersCallback parentParameters; 38 39 40 45 public JexlContextMap(ParametersCallback parentParameters) { 46 this.parentParameters = parentParameters; 47 } 48 49 57 public Object getParameter(final String name) { 58 Object v = localVariables.get(name); 59 if (v != null) { 60 return v; 61 } 62 return parentParameters.getParameter(name); 63 } 64 65 @SuppressWarnings ("unchecked") 66 public void setVars(Map vars) { 67 localVariables.clear(); 68 localVariables.putAll(vars); 69 } 70 71 public Map <String , Object > getVars() { 72 return this; 73 } 74 75 80 public Object get(Object key) { 81 return (key instanceof String ) ? getParameter((String ) key) : null; 82 } 83 84 90 public Object put(String key, Object value) { 91 return localVariables.put(key, value); 92 } 93 94 99 public Object remove(Object key) { 100 return localVariables.remove(key); 101 } 102 103 107 public void putAll(Map <? extends String , ?> t) { 108 localVariables.putAll(t); 109 } 110 111 114 public void clear() { 115 localVariables.clear(); 116 } 117 118 120 public int size() { 121 throw new UnsupportedOperationException (); 122 } 123 124 public boolean isEmpty() { 125 throw new UnsupportedOperationException (); 126 } 127 128 public boolean containsKey(Object key) { 129 throw new UnsupportedOperationException (); 130 } 131 132 public boolean containsValue(Object value) { 133 throw new UnsupportedOperationException (); 134 } 135 136 137 public Set <String > keySet() { 138 throw new UnsupportedOperationException (); 139 } 140 141 public Collection <Object > values() { 142 throw new UnsupportedOperationException (); 143 } 144 145 public Set <Map.Entry <String , Object >> entrySet() { 146 throw new UnsupportedOperationException (); 147 } 148 } 149 | Popular Tags |