3 namespace Drupal\entityqueue;
5 use Drupal\Component\Plugin\PluginBase;
6 use Drupal\Component\Utility\NestedArray;
7 use Drupal\Core\DependencyInjection\DependencySerializationTrait;
8 use Drupal\Core\Entity\EntityStorageInterface;
9 use Drupal\Core\Form\FormStateInterface;
10 use Drupal\Core\StringTranslation\StringTranslationTrait;
13 * Base class for EntityQueueHandler plugins.
15 abstract class EntityQueueHandlerBase extends PluginBase implements EntityQueueHandlerInterface {
17 use DependencySerializationTrait;
18 use StringTranslationTrait;
21 * The entity queue that is using this plugin.
23 * @var \Drupal\entityqueue\Entity\EntityQueue
30 public function __construct(array $configuration, $plugin_id, array $plugin_definition) {
31 parent::__construct($configuration, $plugin_id, $plugin_definition);
32 $this->setConfiguration($configuration);
38 public function getConfiguration() {
39 return $this->configuration;
45 public function setConfiguration(array $configuration) {
46 $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $configuration);
52 public function defaultConfiguration() {
59 public function calculateDependencies() {
66 public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
73 public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
80 public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
87 public function setQueue(EntityQueueInterface $queue) {
88 $this->queue = $queue;
96 public function getQueueListBuilderOperations() {
97 // Add an operation to list all subqueues by default.
98 $operations['view_subqueues'] = [
99 'title' => $this->t('View subqueues'),
101 'url' => $this->queue->urlInfo('subqueue-list'),
110 public function onQueuePreSave(EntityQueueInterface $queue, EntityStorageInterface $storage) {}
115 public function onQueuePostSave(EntityQueueInterface $queue, EntityStorageInterface $storage, $update = TRUE) {}
120 public function onQueuePreDelete(EntityQueueInterface $queue, EntityStorageInterface $storage) {}
125 public function onQueuePostDelete(EntityQueueInterface $queue, EntityStorageInterface $storage) {}
130 public function onQueuePostLoad(EntityQueueInterface $queue, EntityStorageInterface $storage) {}