protected IMapProperty doGetDelegate(Object source) {
Class beanClass = source.getClass();
if (delegates.containsKey(beanClass))
return (IMapProperty) delegates.get(beanClass);
IMapProperty delegate;
try {
delegate = BeanProperties.map(beanClass, propertyName,
(Class) getKeyType(), (Class) getValueType());
} catch (IllegalArgumentException noSuchProperty) {
delegate = null;