Re: __defineGetter__

jfwittmann <[email protected]>
Newsgroups gmane.comp.java.helma.general
Message-ID <[email protected]>
Michael Platzer schrieb:
> Hi list,
>
> One of the cool new features of Helma 1.6.0 will be the ability to 
> define methods for retrieving and setting properties throught the use of 
> defineGetter, and defineSetter.
> -> 
> http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Creating_New_Objects:Defining_Getters_and_Setters
>   

In the Mustang includes Rhino JavaScript engine it's already possible.
this was a little test by me with the known  prototype lib on server side.
....
function MapAdapter(map) {
    this.__has__ = function(name) {
       return map.containsKey(name);
    }
    this.__get__ = function(name) {
        return map.get(name);
    }
    this.__put__ = function(name, value) {
        map.put(name, value);
    }
    this.__delete__ = function(name) {
        map.remove(name);
    }
    this.__getIds__ = function() {
        var result = [];
        for (var keyIterator = map.keySet().iterator(); 
keyIterator.hasNext();) {
            var key = keyIterator.next();
            result.push(key);
        }
        return result;
    }   
};

var Hash = function(obj) {
    if (obj instanceof java.util.HashMap) {
        Object.extend(this, new JSAdapter(new MapAdapter(obj)))
    } else {
        Object.extend(this, new JSAdapter(new MapAdapter(new 
java.util.HashMap())))
        Object.extend(this, obj || {});
    }
};
....

And here is another blog thread to this interesting topic too.

http://blogs.sun.com/sundararajan/entry/self_javascript_and_jsadapter

Felix
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.