code: public void update(Object target) {
          if (target == null) {
              throw new IllegalArgumentException(
                      "Target to update cannot be null");
          }
  
          BeanWrapper bw = new BeanWrapperImpl(target);
          bw.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true));
          for (Map.Entry<String, Object> property : m_properties.entrySet()) {
              String propertyName = property.getKey();
              Object value = property.getValue();
  
              if (value instanceof Map) {
                  PropertyDescriptor pd = bw.getPropertyDescriptor(propertyName);
                  if (!Map.class.isAssignableFrom(pd.getPropertyType()) || pd.getWriteMethod() == null) {
                      value = new DynamicObject((Map<String, Object>) value);
                  }
              }
  
              if (value instanceof DynamicObject) {
                  ((DynamicObject) value).update(bw.getPropertyValue(propertyName));
              }
              else {
                  bw.setPropertyValue(propertyName, value);
              }
          }
      }
docs: Update specified target from this object.
  
  @param target target object to update