Revision: 63320
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 25, 2013 10:58 by laurenceosx
Initial Code
def getBeanInfoProps( aObj = null, aClass = null ) {
if ( aClass == null ) {
aClass = aObj?.getClass();
}
assert( [aObj, aClass].count(null) != 2 );
def map = [:];
def lst = java.beans.Introspector.getBeanInfo( aClass ).propertyDescriptors.collect { it }
lst.eachWithIndex { itr, idx ->
String theName = "${itr?.getReadMethod()?.name}".trim();
if (theName.size() >= 3) {
def startIdx = theName.startsWith('is') ? 2 : 3 ; // is or get
def propNameWrongCase = theName.substring( startIdx )
def propName = java.beans.Introspector.decapitalize(propNameWrongCase);
def nestedMap = [:]
map[ propName ] = nestedMap;
nestedMap.name = propName;
nestedMap.type = itr.getPropertyType();
nestedMap.value = (aObj == null) ? null : aObj[ propName ] ;
}
}
// println map.values().join('\n')
return map;
}
Initial URL
Initial Description
Get obj props using java.beans.Introspector.getBeanInfo()
Initial Title
Groovy - Get BeanInfo Props for name, type and value
Initial Tags
groovy
Initial Language
Groovy