docs: private MutablePropertyValues modifyProperties(MutablePropertyValues propertyValues, Object target) {
          propertyValues = getPropertyValuesForNamePrefix(propertyValues);
          if (target instanceof RelaxedDataBinder.MapHolder) {
              propertyValues = addMapPrefix(propertyValues);
          }
          BeanWrapper wrapper = new BeanWrapperImpl(target);
          wrapper.setConversionService(new RelaxedConversionService(getConversionService()));
          wrapper.setAutoGrowNestedPaths(true);
          List<PropertyValue> sortedValues = new ArrayList<PropertyValue>();
          Set<String> modifiedNames = new HashSet<String>();
          List<String> sortedNames = getSortedPropertyNames(propertyValues);
          for (String name : sortedNames) {
              PropertyValue propertyValue = propertyValues.getPropertyValue(name);
              PropertyValue modifiedProperty = modifyProperty(wrapper, propertyValue);
              if (modifiedNames.add(modifiedProperty.getName())) {
                  sortedValues.add(modifiedProperty);
              }
          }
          return new MutablePropertyValues(sortedValues);
      }