protected function doPreSave(EntityInterface
$entity) { /** @var \Drupal\Core\Entity\ContentEntityBase $entity */
// Sync the changes made in the fields array to the internal values array.
$entity->
updateOriginalValues();
if ($entity->
getEntityType()->
isRevisionable() && !
$entity->
isNew() &&
empty($entity->
getLoadedRevisionId())) { // Update the loaded revision id for rare special cases when no loaded
// revision is given when updating an existing entity. This for example
// happens when calling save() in hook_entity_insert().
$entity->
updateLoadedRevisionId();
} $id = parent::
doPreSave($entity);
if (!
$entity->
isNew()) { // If the ID changed then original can't be loaded, throw an exception
// in that case.
if (empty($entity->original
) ||
$entity->
id() !=
$entity->original->
id()) { throw new EntityStorageException("Update existing '{
$this->entityTypeId
}' entity while changing the ID is not supported."
);
} // Do not allow changing the revision ID when resaving the current