code: protected Object prepareSimpleProperty(Object bean, String name) {
          final BeanDesc beanDesc = BeanDescFactory.getBeanDesc(bean.getClass());
          if (!beanDesc.hasPropertyDesc(name)) {
              return null;
          }
          final PropertyDesc pd = beanDesc.getPropertyDesc(name);
          if (!pd.isReadable()) {
              return null;
          }
          Object value = pd.getValue(bean);
          if (value == null) {
              final Class<?> propertyType = pd.getPropertyType();
              if (!LdiModifierUtil.isAbstract(propertyType)) {
                  value = LdiClassUtil.newInstance(propertyType);
                  if (pd.isWritable()) {
                      pd.setValue(bean, value);
                  }
              } else if (Map.class.isAssignableFrom(propertyType)) {
                  value = new HashMap<String, Object>();
                  if (pd.isWritable()) {
                      pd.setValue(bean, value);
                  }
              }
          }
          return value;
      }
docs: ===============