diff --git a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php index c3ae6a3..1541582 100644 --- a/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityStorageBase.php @@ -107,6 +107,32 @@ protected function doCreate(array $values) { } /** + * Checks whether the storage for a given field is revisionable. + * + * @param \Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition + * A field storage definition. + * + * @return bool + * TRUE if the field storage is revisionable, FALSE otherwise. + */ + protected function isFieldStorageRevisionable(FieldStorageDefinitionInterface $storage_definition) { + return $this->entityType->isRevisionable() && $storage_definition->isRevisionable(); + } + + /** + * Checks whether the storage for a given field is translatable. + * + * @param \Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition + * A field storage definition. + * + * @return bool + * TRUE if the field storage is translatable, FALSE otherwise. + */ + protected function isFieldStorageTranslatable(FieldStorageDefinitionInterface $storage_definition) { + return $this->entityType->isTranslatable() && $storage_definition->isTranslatable(); + } + + /** * {@inheritdoc} */ public function onFieldStorageDefinitionCreate(FieldStorageDefinitionInterface $storage_definition) { } diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php index 419b3a7..dad4e71 100644 --- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php +++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php @@ -1196,7 +1196,7 @@ protected function saveToDedicatedTables(ContentEntityInterface $entity, $update $table_name = $table_mapping->getDedicatedDataTableName($storage_definition); $revision_name = $table_mapping->getDedicatedRevisionTableName($storage_definition); - $revisionable = $this->entityType->isRevisionable() && $storage_definition->isRevisionable(); + $revisionable = $this->isFieldStorageRevisionable($storage_definition); // Delete and insert, rather than update, in case a value was added. if ($update) { @@ -1589,7 +1589,7 @@ public function countFieldData($storage_definition, $as_bool = FALSE) { if ($table_mapping->requiresDedicatedTableStorage($storage_definition)) { $is_deleted = $this->storageDefinitionIsDeleted($storage_definition); - if ($this->entityType->isRevisionable() && $storage_definition->isRevisionable()) { + if ($this->isFieldStorageRevisionable($storage_definition)) { $table_name = $table_mapping->getDedicatedRevisionTableName($storage_definition, $is_deleted); } else {