private function updateValues(
        array &$values,
        PropertiesDefinitionInterface $properties,
        DataProviderInterface $dataProvider
    ) {
        foreach ($values as $propertyName => $propertyValue) {
            if (($dataProvider->getIdProperty() === $propertyName)
                || ($dataProvider->getGroupColumnProperty() === $propertyName)
                || ($dataProvider->getSortingColumnProperty() === $propertyName)
                || ($dataProvider->getTimeStampProperty() === $propertyName)
                || !$properties->hasProperty($propertyName)
            ) {
                continue;
            }

            $values[$propertyName] =
                ModelManipulator::sanitizeValue($properties->getProperty($propertyName), $propertyValue);
        }

        return $values;
    }