class GroupContentTypeStorage in Group 8
Same name and namespace in other branches
- 2.0.x src/Entity/Storage/GroupContentTypeStorage.php \Drupal\group\Entity\Storage\GroupContentTypeStorage
Defines the storage handler class for group content type entities.
This extends the base storage class, adding required special handling for loading group content type entities based on group type and plugin ID.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityStorageBase implements EntityHandlerInterface, EntityStorageInterface
- class \Drupal\Core\Config\Entity\ConfigEntityStorage implements ConfigEntityStorageInterface, ImportableEntityStorageInterface
- class \Drupal\group\Entity\Storage\GroupContentTypeStorage implements GroupContentTypeStorageInterface
- class \Drupal\Core\Config\Entity\ConfigEntityStorage implements ConfigEntityStorageInterface, ImportableEntityStorageInterface
- class \Drupal\Core\Entity\EntityStorageBase implements EntityHandlerInterface, EntityStorageInterface
Expanded class hierarchy of GroupContentTypeStorage
File
- src/
Entity/ Storage/ GroupContentTypeStorage.php, line 21
Namespace
Drupal\group\Entity\StorageView source
class GroupContentTypeStorage extends ConfigEntityStorage implements GroupContentTypeStorageInterface {
/**
* The group content plugin manager.
*
* @var \Drupal\group\Plugin\GroupContentEnablerManagerInterface
*/
protected $pluginManager;
/**
* Statically caches loaded group content types by target entity type ID.
*
* @var \Drupal\group\Entity\GroupContentTypeInterface[][]
*/
protected $byEntityTypeCache = [];
/**
* Constructs a GroupContentTypeStorage object.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type definition.
* @param \Drupal\group\Plugin\GroupContentEnablerManagerInterface $plugin_manager
* The group content enabler manager.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory service.
* @param \Drupal\Component\Uuid\UuidInterface $uuid_service
* The UUID service.
* @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
* The language manager.
* @param \Drupal\Core\Cache\MemoryCache\MemoryCacheInterface $memory_cache
* The memory cache backend.
*/
public function __construct(EntityTypeInterface $entity_type, GroupContentEnablerManagerInterface $plugin_manager, ConfigFactoryInterface $config_factory, UuidInterface $uuid_service, LanguageManagerInterface $language_manager, MemoryCacheInterface $memory_cache) {
parent::__construct($entity_type, $config_factory, $uuid_service, $language_manager, $memory_cache);
$this->pluginManager = $plugin_manager;
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container
->get('plugin.manager.group_content_enabler'), $container
->get('config.factory'), $container
->get('uuid'), $container
->get('language_manager'), $container
->get('entity.memory_cache'));
}
/**
* {@inheritdoc}
*/
public function loadByGroupType(GroupTypeInterface $group_type) {
return $this
->loadByProperties([
'group_type' => $group_type
->id(),
]);
}
/**
* {@inheritdoc}
*/
public function loadByContentPluginId($plugin_id) {
return $this
->loadByProperties([
'content_plugin' => $plugin_id,
]);
}
/**
* {@inheritdoc}
*/
public function loadByEntityTypeId($entity_type_id) {
$plugin_ids = [];
if (isset($this->byEntityTypeCache[$entity_type_id])) {
return $this->byEntityTypeCache[$entity_type_id];
}
/** @var \Drupal\group\Plugin\GroupContentEnablerInterface $plugin */
foreach ($this->pluginManager
->getAll() as $plugin_id => $plugin) {
if ($plugin
->getEntityTypeId() === $entity_type_id) {
$plugin_ids[] = $plugin_id;
}
}
// If no responsible group content plugins were found, we return nothing.
if (empty($plugin_ids)) {
$this->byEntityTypeCache[$entity_type_id] = [];
return [];
}
// Otherwise load all group content types being handled by gathered plugins.
$this->byEntityTypeCache[$entity_type_id] = $this
->loadByContentPluginId($plugin_ids);
return $this->byEntityTypeCache[$entity_type_id];
}
/**
* {@inheritdoc}
*/
public function createFromPlugin(GroupTypeInterface $group_type, $plugin_id, array $configuration = []) {
// Add the group type ID to the configuration.
$configuration['group_type_id'] = $group_type
->id();
// Instantiate the plugin we are installing.
/** @var \Drupal\group\Plugin\GroupContentEnablerInterface $plugin */
$plugin = $this->pluginManager
->createInstance($plugin_id, $configuration);
// Create the group content type using plugin generated info.
$values = [
'id' => $plugin
->getContentTypeConfigId(),
'label' => $plugin
->getContentTypeLabel(),
'description' => $plugin
->getContentTypeDescription(),
'group_type' => $group_type
->id(),
'content_plugin' => $plugin_id,
'plugin_config' => $plugin
->getConfiguration(),
];
return $this
->create($values);
}
/**
* {@inheritdoc}
*/
public function resetCache(array $ids = NULL) {
parent::resetCache($ids);
$this->byEntityTypeCache = [];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigEntityStorage:: |
protected | property | The config factory service. | |
ConfigEntityStorage:: |
protected | property | The config storage service. | |
ConfigEntityStorage:: |
protected | property | Static cache of entities, keyed first by entity ID, then by an extra key. | |
ConfigEntityStorage:: |
protected | property | The language manager. | |
ConfigEntityStorage:: |
protected | property | Determines if the underlying configuration is retrieved override free. | |
ConfigEntityStorage:: |
protected | property |
Name of entity's UUID database table field, if it supports UUIDs. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
protected | function |
Builds the cache ID for the passed in entity ID. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
public | function |
Creates a configuration entity from storage values. Overrides ConfigEntityStorageInterface:: |
|
ConfigEntityStorage:: |
public | function |
Delete a specific entity revision. Overrides EntityStorageInterface:: |
|
ConfigEntityStorage:: |
protected | function |
Performs storage-specific creation of entities. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
protected | function |
Performs storage-specific entity deletion. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
protected | function |
Performs storage-specific loading of entities. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
protected | function |
Performs storage-specific saving of the entity. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
public static | function |
Extracts the configuration entity ID from the full configuration name. Overrides ConfigEntityStorageInterface:: |
|
ConfigEntityStorage:: |
protected | function | Returns the prefix used to create the configuration name. | |
ConfigEntityStorage:: |
protected | function |
Gets the name of the service for the query for this entity storage. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
protected | function |
Determines if this entity already exists in storage. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
public | function |
Determines if the storage contains any data. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
public | function |
Creates entities upon synchronizing configuration changes. Overrides ImportableEntityStorageInterface:: |
1 |
ConfigEntityStorage:: |
public | function |
Delete entities upon synchronizing configuration changes. Overrides ImportableEntityStorageInterface:: |
2 |
ConfigEntityStorage:: |
public | function |
Renames entities upon synchronizing configuration changes. Overrides ImportableEntityStorageInterface:: |
|
ConfigEntityStorage:: |
public | function |
Updates entities upon synchronizing configuration changes. Overrides ImportableEntityStorageInterface:: |
1 |
ConfigEntityStorage:: |
protected | function |
Invokes a hook on behalf of the entity. Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
public | function |
Loads one or more entities in their original form without overrides. Overrides ConfigEntityStorageInterface:: |
|
ConfigEntityStorage:: |
public | function |
Loads one entity in their original form without overrides. Overrides ConfigEntityStorageInterface:: |
|
ConfigEntityStorage:: |
public | function |
Load a specific entity revision. Overrides EntityStorageInterface:: |
|
ConfigEntityStorage:: |
protected | function | Maps from an entity object to the storage record. | 3 |
ConfigEntityStorage:: |
constant | Length limit of the configuration entity ID. | 1 | |
ConfigEntityStorage:: |
public | function |
Implements Drupal\Core\Entity\EntityStorageInterface::save(). Overrides EntityStorageBase:: |
|
ConfigEntityStorage:: |
public | function |
Updates a configuration entity from storage values. Overrides ConfigEntityStorageInterface:: |
|
ConfigEntityStorage:: |
protected | function | Helps create a configuration entity from storage values. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityStorageBase:: |
protected | property | Name of the entity class. | |
EntityStorageBase:: |
protected | property | Information about the entity type. | |
EntityStorageBase:: |
protected | property | Entity type ID for this storage. | |
EntityStorageBase:: |
protected | property | Name of the entity's ID field in the entity database table. | |
EntityStorageBase:: |
protected | property | The name of the entity langcode property. | 1 |
EntityStorageBase:: |
protected | property | The memory cache. | |
EntityStorageBase:: |
protected | property | The memory cache cache tag. | |
EntityStorageBase:: |
protected | property | The UUID service. | 1 |
EntityStorageBase:: |
protected | function | Builds an entity query. | 1 |
EntityStorageBase:: |
public | function |
Constructs a new entity object, without permanently saving it. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
public | function |
Deletes permanently saved entities. Overrides EntityStorageInterface:: |
2 |
EntityStorageBase:: |
protected | function | Performs post save entity processing. | 1 |
EntityStorageBase:: |
protected | function | Performs presave entity processing. | 1 |
EntityStorageBase:: |
public | function |
Gets an aggregated query instance. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
public | function |
Gets the entity type definition. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
public | function |
Gets the entity type ID. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
protected | function | Gets entities from the static cache. | |
EntityStorageBase:: |
public | function |
Gets an entity query instance. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
public | function |
Loads one entity. Overrides EntityStorageInterface:: |
2 |
EntityStorageBase:: |
public | function |
Load entities by their property values. Overrides EntityStorageInterface:: |
3 |
EntityStorageBase:: |
public | function |
Loads one or more entities. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
public | function |
Loads an unchanged entity from the database. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
protected | function | Maps from storage records to entity objects. | 4 |
EntityStorageBase:: |
protected | function | Attaches data to entities upon loading. | |
EntityStorageBase:: |
protected | function | Gathers entities from a 'preload' step. | 1 |
EntityStorageBase:: |
public | function |
Restores a previously saved entity. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
protected | function | Stores entities in the static entity cache. | |
EntityStorageInterface:: |
constant | Load the most recent version of an entity's field data. | ||
EntityStorageInterface:: |
constant | Load the version of an entity's field data specified in the entity. | ||
GroupContentTypeStorage:: |
protected | property | Statically caches loaded group content types by target entity type ID. | |
GroupContentTypeStorage:: |
protected | property | The group content plugin manager. | |
GroupContentTypeStorage:: |
public | function |
Creates a group content type for a group type using a specific plugin. Overrides GroupContentTypeStorageInterface:: |
|
GroupContentTypeStorage:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides ConfigEntityStorage:: |
|
GroupContentTypeStorage:: |
public | function |
Retrieves group content types by their responsible plugin ID. Overrides GroupContentTypeStorageInterface:: |
|
GroupContentTypeStorage:: |
public | function |
Retrieves group content types which could serve a given entity type. Overrides GroupContentTypeStorageInterface:: |
|
GroupContentTypeStorage:: |
public | function |
Retrieves all group content types for a group type. Overrides GroupContentTypeStorageInterface:: |
|
GroupContentTypeStorage:: |
public | function |
Resets the internal, static entity cache. Overrides EntityStorageBase:: |
|
GroupContentTypeStorage:: |
public | function |
Constructs a GroupContentTypeStorage object. Overrides ConfigEntityStorage:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |