Here's what I was alluding to in the prior email and in chat. I wrote and tested it in Rhino, but it is standard javascript.

#!/usr/bin/rhino


var Registry = {

    factories : {},
    instances : {},

    register:  function(name,factory){

        this.factories[name] = factory;

        this.__defineGetter__(name, function() {

            if (!this.instances[name]){
                this.instances[name] = this.factories[name]();
            }

            return this.instances[name];
        });

    }

}


Registry.register("testobj",function(){
    return "String";
});

print ("Hello World");

print (Registry.testobj);
_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to