class Konf {
// Initializing overloader
static {
// . read Konf.metaClass.getProperty = { String prop -> println "getProp $prop"
this."${prop}"
}
// . assignment Konf.metaClass.setProperty = { String prop, val -> println "setProp $prop $val"
this.metaClass."${prop}" = val } }
// [] read def getAt( String key ) { println 'getAt' this."${key}"
}
// [] set def putAt( String key, val ) { println "putAt $key $val"
this.metaClass."${key}" = val } def clear() { } }