in netbeans.apache.org/buildSrc/src/main/groovy/Utils.groovy [12:31]
private static def Map _addFlattenedProperties(Map m,
String separator = '.',
String key = '',
Map receiver=[:],
boolean top=true) {
m.each {
k, v ->
if(v instanceof Map) {
_addFlattenedProperties(v, separator, "${key?:''}${key?separator:''}${k}", receiver, false)
} else {
receiver["${key?:''}${key?separator:''}${k}"] = v
}
}
//if we're the top caller
if(top) {
receiver.putAll(m)
}
return receiver
}