public static void setProperty(Object bean, String propertyName, Object property) {
        Method setter = getBeanMate(bean.getClass()).setterMap.get(propertyName);
        if (setter == null) {
            throw new IllegalArgumentException(
                    "Property " + propertyName + " is not writable.");
        }
        ReflectionUtils.invoke(setter, bean, property);
    }