// Note this is all pretty much copied from ConfigurationWriteDelegate.prepareSimplePropertyMap
Map<String,PropertyDefinition> memberDefinitions = propertyDefinition.getMap();
Map<String,Object> results = new HashMap<String,Object>();
for (String name : memberDefinitions.keySet()) {
PropertyDefinition memberDefinition = memberDefinitions.get(name);
if (memberDefinition instanceof PropertyDefinitionSimple) {
PropertyDefinitionSimple pds = (PropertyDefinitionSimple) memberDefinition;
PropertySimple ps = (PropertySimple) property.get(name);
if ((ps==null || ps.getStringValue()==null ) && !pds.isRequired())
continue;
if (ps!=null)
results.put(name,ps.getStringValue());
}
// This is added since it isn't supported already.
// Should be merged with https://github.com/rhq-project/rhq/pull/128
else if (memberDefinition instanceof PropertyDefinitionMap) {
PropertyDefinitionMap pdm = (PropertyDefinitionMap) memberDefinition;
PropertyMap pm = (PropertyMap) property.get(name);
if ((pm==null || pm.getMap().isEmpty()) && !pdm.isRequired())
continue;
if (pm != null) {
Map<String, Object> innerMap = prepareSimplePropertyMap(pm, pdm);
results.put(name, innerMap);
}
}
else {
log.error(" *** not yet supported *** : " + memberDefinition.getName());
}
}
return results;
}
};