From e6cf8647ccaffe9b8ed53c5916aac3b2e59a84ac Mon Sep 17 00:00:00 2001 From: stefanp Date: Mon, 29 Jul 2002 12:44:57 +0000 Subject: [PATCH] added readonly option. --- src/helma/scripting/fesi/ESMapWrapper.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/helma/scripting/fesi/ESMapWrapper.java b/src/helma/scripting/fesi/ESMapWrapper.java index 5f6b2de7..0eb02002 100644 --- a/src/helma/scripting/fesi/ESMapWrapper.java +++ b/src/helma/scripting/fesi/ESMapWrapper.java @@ -21,6 +21,7 @@ public class ESMapWrapper extends ESWrapper { private Map data; private FesiEvaluator fesi; + private boolean readonly = false; public ESMapWrapper (FesiEvaluator fesi) { super (new Object(), fesi.getEvaluator ()); @@ -33,6 +34,10 @@ public class ESMapWrapper extends ESWrapper { this.data = data; } + public void setReadonly (boolean readonly) { + this.readonly = readonly; + } + public void setData (Map data) { this.data = data; } @@ -43,12 +48,18 @@ public class ESMapWrapper extends ESWrapper { public void putProperty(String propertyName, ESValue propertyValue, int hash) throws EcmaScriptException { if (data == null) 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 { - data.remove (propertyName); - return true; + if (readonly==false) { + data.remove (propertyName); + return true; + } else + return false; } public ESValue getProperty(String propertyName, int hash) throws EcmaScriptException {