added readonly option.

This commit is contained in:
stefanp 2002-07-29 12:44:57 +00:00
parent b4595a2a29
commit e6cf8647cc

View file

@ -21,6 +21,7 @@ public class ESMapWrapper extends ESWrapper {
private Map data; private Map data;
private FesiEvaluator fesi; private FesiEvaluator fesi;
private boolean readonly = false;
public ESMapWrapper (FesiEvaluator fesi) { public ESMapWrapper (FesiEvaluator fesi) {
super (new Object(), fesi.getEvaluator ()); super (new Object(), fesi.getEvaluator ());
@ -33,6 +34,10 @@ public class ESMapWrapper extends ESWrapper {
this.data = data; this.data = data;
} }
public void setReadonly (boolean readonly) {
this.readonly = readonly;
}
public void setData (Map data) { public void setData (Map data) {
this.data = data; this.data = data;
} }
@ -43,12 +48,18 @@ public class ESMapWrapper extends ESWrapper {
public void putProperty(String propertyName, ESValue propertyValue, int hash) throws EcmaScriptException { public void putProperty(String propertyName, ESValue propertyValue, int hash) throws EcmaScriptException {
if (data == null) if (data == null)
data = new HashMap (); data = new HashMap ();
data.put (propertyName, propertyValue); if (readonly==false)
data.put (propertyName, propertyValue);
else
throw new EcmaScriptException ("object is readonly");
} }
public boolean deleteProperty(String propertyName, int hash) throws EcmaScriptException { public boolean deleteProperty(String propertyName, int hash) throws EcmaScriptException {
data.remove (propertyName); if (readonly==false) {
return true; data.remove (propertyName);
return true;
} else
return false;
} }
public ESValue getProperty(String propertyName, int hash) throws EcmaScriptException { public ESValue getProperty(String propertyName, int hash) throws EcmaScriptException {