martes, abril 22, 2014

Convirtiendo Groovy objects en Maps

En groovy convertir las propiedades de un objecto en un Map es una labor practicamente inmediata:

//Couple of VO classes
class ParamsContainerA{
int num1
String text1
boolean bool1
}
class ParamsContainerB{
int num2
String text2
boolean bool2
}
//Couple of instances
ParamsContainerA anObjA=new ParamsContainerA(num1:12,text1:"holaA",bool1:true)
ParamsContainerB anObjB=new ParamsContainerB(num2:24,text2:"adiosB",bool2:false)
//Turned into Maps (filtering out the class property if desired)
Map mA=anObjA.properties.findAll{it.key!="class"}
Map mB=anObjB.properties.findAll{it.key!="class"}
Map result=mA+mB
println mA
println mB
println result
view raw groovy-into-map hosted with ❤ by GitHub

Nota: Si el objecto no es un objeto simple sino que esta compuesto de otros objetos complejos estos campos serán mapeados igualmente pero tal cual son, sin transformarse en Maps.

No hay comentarios: