You are here

class CivicrmEntityStorageSchema in CiviCRM Entity 8.3

Implementation of the SqlContentEntityStorageSchema for CiviCRM entities.

This allows CiviCRM entities to support dedicated field storage while using CiviCRM for full data of the entity.

Hierarchy

Expanded class hierarchy of CivicrmEntityStorageSchema

1 file declares its use of CivicrmEntityStorageSchema
civicrm_entity.module in ./civicrm_entity.module
Module file for the CiviCRM Entity module.

File

src/Entity/Sql/CivicrmEntityStorageSchema.php, line 15

Namespace

Drupal\civicrm_entity\Entity\Sql
View source
class CivicrmEntityStorageSchema extends SqlContentEntityStorageSchema {

  /**
   * The storage object for the given entity type.
   *
   * @var \Drupal\civicrm_entity\CiviEntityStorage
   */
  protected $storage;

  /**
   * {@inheritdoc}
   */
  public function onEntityTypeCreate(EntityTypeInterface $entity_type) {
    $this
      ->checkEntityType($entity_type);

    // Create dedicated field tables.
    $table_mapping = $this->storage
      ->getTableMapping();
    foreach ($this->fieldStorageDefinitions as $field_storage_definition) {
      if ($table_mapping
        ->requiresDedicatedTableStorage($field_storage_definition)) {
        $this
          ->createDedicatedTableSchema($field_storage_definition);
      }
    }
  }

  /**
   * {@inheritdoc}
   */
  public function onEntityTypeUpdate(EntityTypeInterface $entity_type, EntityTypeInterface $original) {
    $this
      ->checkEntityType($entity_type);
    $this
      ->checkEntityType($original);
  }

  /**
   * {@inheritdoc}
   */
  public function requiresEntityStorageSchemaChanges(EntityTypeInterface $entity_type, EntityTypeInterface $original) {
    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  public function requiresFieldStorageSchemaChanges(FieldStorageDefinitionInterface $storage_definition, FieldStorageDefinitionInterface $original) {
    return FALSE;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
CivicrmEntityStorageSchema::$storage protected property The storage object for the given entity type. Overrides SqlContentEntityStorageSchema::$storage
CivicrmEntityStorageSchema::onEntityTypeCreate public function Reacts to the creation of the entity type. Overrides SqlContentEntityStorageSchema::onEntityTypeCreate
CivicrmEntityStorageSchema::onEntityTypeUpdate public function Reacts to the update of the entity type. Overrides SqlContentEntityStorageSchema::onEntityTypeUpdate
CivicrmEntityStorageSchema::requiresEntityStorageSchemaChanges public function Checks if the changes to the entity type requires storage schema changes. Overrides SqlContentEntityStorageSchema::requiresEntityStorageSchemaChanges
CivicrmEntityStorageSchema::requiresFieldStorageSchemaChanges public function Checks if the changes to the storage definition requires schema changes. Overrides SqlContentEntityStorageSchema::requiresFieldStorageSchemaChanges
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
DeprecatedServicePropertyTrait::__get public function Allows to access deprecated/removed properties.
SqlContentEntityStorageSchema::$database protected property The database connection to be used.
SqlContentEntityStorageSchema::$deletedFieldsRepository protected property The deleted fields repository.
SqlContentEntityStorageSchema::$deprecatedProperties protected property
SqlContentEntityStorageSchema::$entityFieldManager protected property The entity field manager service.
SqlContentEntityStorageSchema::$entityType protected property The entity type this schema builder is responsible for.
SqlContentEntityStorageSchema::$entityTypeManager protected property The entity type manager.
SqlContentEntityStorageSchema::$fieldStorageDefinitions protected property The storage field definitions for this entity type.
SqlContentEntityStorageSchema::$installedStorageSchema protected property The key-value collection for tracking installed storage schema.
SqlContentEntityStorageSchema::$schema protected property A static cache of the generated schema array.
SqlContentEntityStorageSchema::$updateBackupRepository protected property The key-value collection for tracking entity update backup repository.
SqlContentEntityStorageSchema::addIndex protected function Creates an index, dropping it if already existing.
SqlContentEntityStorageSchema::addSharedTableFieldForeignKey protected function Adds a foreign key for the specified field to the given schema definition.
SqlContentEntityStorageSchema::addSharedTableFieldIndex protected function Adds an index for the specified field to the given schema definition.
SqlContentEntityStorageSchema::addSharedTableFieldUniqueKey protected function Adds a unique key for the specified field to the given schema definition.
SqlContentEntityStorageSchema::addTableDefaults protected function Adds defaults to a table schema definition.
SqlContentEntityStorageSchema::addUniqueKey protected function Creates a unique key, dropping it if already existing.
SqlContentEntityStorageSchema::castValue public static function Typecasts values to proper datatypes.
SqlContentEntityStorageSchema::checkEntityType protected function Checks that we are dealing with the correct entity type.
SqlContentEntityStorageSchema::createDedicatedTableSchema protected function Creates the schema for a field stored in a dedicated table.
SqlContentEntityStorageSchema::createEntitySchemaIndexes protected function Creates the specified entity schema indexes and keys.
SqlContentEntityStorageSchema::createSharedTableSchema protected function Creates the schema for a field stored in a shared table.
SqlContentEntityStorageSchema::deleteDedicatedTableSchema protected function Deletes the schema for a field stored in a dedicated table.
SqlContentEntityStorageSchema::deletedFieldsRepository protected function Gets the deleted fields repository.
SqlContentEntityStorageSchema::deleteEntitySchemaData protected function Deletes schema data for the given entity type definition.
SqlContentEntityStorageSchema::deleteEntitySchemaIndexes protected function Deletes the specified entity schema indexes and keys.
SqlContentEntityStorageSchema::deleteFieldSchemaData protected function Deletes schema data for the given field storage definition.
SqlContentEntityStorageSchema::deleteSharedTableSchema protected function Deletes the schema for a field stored in a shared table.
SqlContentEntityStorageSchema::finalizePurge public function Performs final cleanup after all data of a field has been purged. Overrides DynamicallyFieldableEntityStorageSchemaInterface::finalizePurge
SqlContentEntityStorageSchema::getColumnSchemaRelevantKeys protected function Returns a list of column schema keys affecting data storage.
SqlContentEntityStorageSchema::getDedicatedTableSchema protected function Gets the SQL schema for a dedicated table. 1
SqlContentEntityStorageSchema::getEntityIndexName protected function Gets the name to be used for the given entity index.
SqlContentEntityStorageSchema::getEntitySchema protected function Gets the entity schema for the specified entity type. 7
SqlContentEntityStorageSchema::getEntitySchemaData protected function Gets entity schema definitions for index and key definitions.
SqlContentEntityStorageSchema::getEntitySchemaTables protected function Gets a list of entity type tables.
SqlContentEntityStorageSchema::getFieldForeignKeys protected function Gets field foreign keys.
SqlContentEntityStorageSchema::getFieldIndexes protected function Gets an index schema array for a given field.
SqlContentEntityStorageSchema::getFieldIndexName protected function Generates an index name for a field data table.
SqlContentEntityStorageSchema::getFieldSchemaData protected function Gets field schema data for the given key.
SqlContentEntityStorageSchema::getFieldSchemaIdentifierName protected function Generates a safe schema identifier (name of an index, column name etc.).
SqlContentEntityStorageSchema::getFieldUniqueKeys protected function Gets a unique key schema array for a given field.
SqlContentEntityStorageSchema::getSchemaFromStorageDefinition protected function Gets the schema data for the given field storage definition.
SqlContentEntityStorageSchema::getSelectQueryForFieldStorageDeletion protected function Returns a SELECT query suitable for inserting data into a dedicated table.
SqlContentEntityStorageSchema::getSharedTableFieldSchema protected function Gets the schema for a single field definition. 9
SqlContentEntityStorageSchema::getTableMapping protected function Refreshes the table mapping with updated definitions.
SqlContentEntityStorageSchema::getTableNames private function Gets a list of table names for this entity type, field storage and mapping.
SqlContentEntityStorageSchema::getTemporaryTableMappingPrefix public static function Gets a string to be used as a prefix for a temporary table mapping object.
SqlContentEntityStorageSchema::handleEntityTypeSchemaUpdateExceptionOnDataCopy protected function Handles the case when an error occurs during the data copying step. Overrides SqlFieldableEntityTypeListenerTrait::handleEntityTypeSchemaUpdateExceptionOnDataCopy
SqlContentEntityStorageSchema::hasColumnChanges protected function Compares schemas to check for changes in the column definitions.
SqlContentEntityStorageSchema::hasNullFieldPropertyData protected function Checks whether a field property has NULL values.
SqlContentEntityStorageSchema::hasSharedTableNameChanges protected function Detects whether any table name got renamed in an entity type update.
SqlContentEntityStorageSchema::hasSharedTableStructureChange protected function Detects whether there is a change in the shared table structure.
SqlContentEntityStorageSchema::initializeBaseTable protected function Initializes common information for a base table.
SqlContentEntityStorageSchema::initializeDataTable protected function Initializes common information for a data table.
SqlContentEntityStorageSchema::initializeRevisionDataTable protected function Initializes common information for a revision data table.
SqlContentEntityStorageSchema::initializeRevisionTable protected function Initializes common information for a revision table.
SqlContentEntityStorageSchema::installedStorageSchema protected function Gets the keyvalue collection for tracking the installed schema.
SqlContentEntityStorageSchema::isTableEmpty protected function Checks whether a database table is non-existent or empty.
SqlContentEntityStorageSchema::loadEntitySchemaData protected function Loads stored schema data for the given entity type definition.
SqlContentEntityStorageSchema::loadFieldSchemaData protected function Loads stored schema data for the given field storage definition.
SqlContentEntityStorageSchema::onEntityTypeDelete public function Reacts to the deletion of the entity type. Overrides EntityTypeListenerInterface::onEntityTypeDelete
SqlContentEntityStorageSchema::onFieldableEntityTypeCreate public function Reacts to the creation of the fieldable entity type. Overrides EntityTypeListenerInterface::onFieldableEntityTypeCreate
SqlContentEntityStorageSchema::onFieldableEntityTypeUpdate public function Reacts to the update of a fieldable entity type. Overrides EntityTypeListenerInterface::onFieldableEntityTypeUpdate
SqlContentEntityStorageSchema::onFieldStorageDefinitionCreate public function Reacts to the creation of a field storage definition. Overrides FieldStorageDefinitionListenerInterface::onFieldStorageDefinitionCreate
SqlContentEntityStorageSchema::onFieldStorageDefinitionDelete public function Reacts to the deletion of a field storage definition. Overrides FieldStorageDefinitionListenerInterface::onFieldStorageDefinitionDelete
SqlContentEntityStorageSchema::onFieldStorageDefinitionUpdate public function Reacts to the update of a field storage definition. Overrides FieldStorageDefinitionListenerInterface::onFieldStorageDefinitionUpdate
SqlContentEntityStorageSchema::performFieldSchemaOperation protected function Performs the specified operation on a field.
SqlContentEntityStorageSchema::postUpdateEntityTypeSchema protected function Allows subscribers to do any cleanup necessary after data copying. Overrides SqlFieldableEntityTypeListenerTrait::postUpdateEntityTypeSchema
SqlContentEntityStorageSchema::preUpdateEntityTypeSchema protected function Allows subscribers to prepare their schema before data copying. Overrides SqlFieldableEntityTypeListenerTrait::preUpdateEntityTypeSchema
SqlContentEntityStorageSchema::processBaseTable protected function Processes the gathered schema for a base table.
SqlContentEntityStorageSchema::processDataTable protected function Processes the gathered schema for a base table.
SqlContentEntityStorageSchema::processFieldStorageSchema protected function Processes the schema for a field storage definition.
SqlContentEntityStorageSchema::processIdentifierSchema protected function Processes the specified entity key. 1
SqlContentEntityStorageSchema::processRevisionDataTable protected function Processes the gathered schema for a base table.
SqlContentEntityStorageSchema::processRevisionTable protected function Processes the gathered schema for a base table.
SqlContentEntityStorageSchema::requiresEntityDataMigration public function Checks if existing data would be lost if the schema changes were applied. Overrides EntityStorageSchemaInterface::requiresEntityDataMigration
SqlContentEntityStorageSchema::requiresFieldDataMigration public function Checks if existing data would be lost if the schema changes were applied. Overrides DynamicallyFieldableEntityStorageSchemaInterface::requiresFieldDataMigration
SqlContentEntityStorageSchema::saveEntitySchemaData protected function Stores schema data for the given entity type definition.
SqlContentEntityStorageSchema::saveFieldSchemaData protected function Stores schema data for the given field storage definition.
SqlContentEntityStorageSchema::updateBackupRepository protected function Gets the key/value collection for tracking the entity update backups.
SqlContentEntityStorageSchema::updateDedicatedTableSchema protected function Updates the schema for a field stored in a shared table.
SqlContentEntityStorageSchema::updateSharedTableSchema protected function Updates the schema for a field stored in a shared table.
SqlContentEntityStorageSchema::__construct public function Constructs a SqlContentEntityStorageSchema.
SqlFieldableEntityTypeListenerTrait::copyData protected function Copies entity data from the original storage to the temporary one.
SqlFieldableEntityTypeListenerTrait::onFieldableEntityTypeUpdate public function Aliased as: traitOnFieldableEntityTypeUpdate