auto_entitylabel-8.x-3.x-dev/src/EntityDecorator.php
src/EntityDecorator.php
<?php
namespace Drupal\auto_entitylabel;
use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Utility\Token;
/**
* Provides an content entity decorator for automatic label generation.
*/
class EntityDecorator implements EntityDecoratorInterface {
/**
* Config factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected $configFactory;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Token service.
*
* @var \Drupal\Core\Utility\Token
*/
protected $token;
/**
* Module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* Automatic label configuration for the entity.
*
* @var array
*/
protected $config;
/**
* Constructs an EntityDecorator object.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* Configuration factory.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* Entity type manager.
* @param \Drupal\Core\Utility\Token $token
* Token manager.
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* Module handler service.
*/
public function __construct(
ConfigFactoryInterface $config_factory,
EntityTypeManagerInterface $entity_type_manager,
Token $token,
ModuleHandlerInterface $module_handler,
) {
$this->configFactory = $config_factory;
$this->entityTypeManager = $entity_type_manager;
$this->token = $token;
$this->moduleHandler = $module_handler;
}
/**
* {@inheritdoc}
*/
public function decorate(ContentEntityInterface $entity) {
return new AutoEntityLabelManager(
$entity,
$this->configFactory,
$this->entityTypeManager,
$this->token,
$this->moduleHandler
);
}
}
