public override void ClearModifiedPropertyNames(object bean)
 {
     if (HasClearModifiedPropertyNamesMethodName)
     {
         MethodInfo mi = BeanType.GetMethod(ClearModifiedPropertyNamesMethodName);
         mi.Invoke(bean, null);
     }
     else if (HasModifiedPropertyNamesPropertyName)
     {
         PropertyInfo pi = BeanType.GetProperty(ModifiedPropertyNamesPropertyName);
         IDictionary  modifiedPropertyNames = (IDictionary)pi.GetValue(bean, null);
         modifiedPropertyNames.Clear();
     }
 }
        public override IDictionary GetModifiedPropertyNames(object bean)
        {
            String propertyName = _modifiedPropertyNamesPropertyName;

            if (!HasModifiedPropertyNamesPropertyName)
            {
                throw new NotFoundModifiedPropertiesRuntimeException(bean.GetType().Name, propertyName);
            }
            PropertyInfo modifiedPropertyType = BeanType.GetProperty(propertyName);
            object       value = modifiedPropertyType.GetValue(bean, null);
            IDictionary  names = (IDictionary)value;

            return(names);
        }