code: 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;
      }
docs: Update type safety values.
  
  @param array                         $values       The values for update.
  @param PropertiesDefinitionInterface $properties   The properties.
  @param DataProviderInterface         $dataProvider The data provider.
  
  @return array