private Map<String, PropertyDescriptor> resolveProperties(Class<?> clazz) {
final Map<String, PropertyDescriptor> descriptors =
new HashMap<String, PropertyDescriptor>();
new ClassWalkingLogic(clazz).walk(new ClassVisitor() {
public void visit(Class<?> clazz) {
PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(clazz);
for (PropertyDescriptor descriptor : pds) {
descriptors.put(descriptor.getName(), descriptor);
}