3 namespace Drupal\entityqueue;
5 use Drupal\Component\Plugin\PluginBase;
6 use Drupal\Core\DependencyInjection\DependencySerializationTrait;
7 use Drupal\Core\Entity\EntityStorageInterface;
8 use Drupal\Core\Form\FormStateInterface;
9 use Drupal\Core\StringTranslation\StringTranslationTrait;
12 * Base class for EntityQueueHandler plugins.
14 abstract class EntityQueueHandlerBase extends PluginBase implements EntityQueueHandlerInterface {
16 use DependencySerializationTrait;
17 use StringTranslationTrait;
20 * The entity queue that is using this plugin.
22 * @var \Drupal\entityqueue\Entity\EntityQueue
29 public function __construct(array $configuration, $plugin_id, array $plugin_definition) {
30 parent::__construct($configuration, $plugin_id, $plugin_definition);
31 $this->configuration += $this->defaultConfiguration();
37 public function getConfiguration() {
38 return $this->configuration;
44 public function setConfiguration(array $configuration) {
45 $this->configuration = $configuration;
51 public function defaultConfiguration() {
58 public function calculateDependencies() {
65 public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
72 public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
79 public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
86 public function setQueue(EntityQueueInterface $queue) {
87 $this->queue = $queue;
95 public function getQueueListBuilderOperations() {
96 // Add an operation to list all subqueues by default.
97 $operations['view_subqueues'] = [
98 'title' => $this->t('View subqueues'),
100 'url' => $this->queue->urlInfo('subqueue-list'),
109 public function onQueuePreSave(EntityQueueInterface $queue, EntityStorageInterface $storage) { }
114 public function onQueuePostSave(EntityQueueInterface $queue, EntityStorageInterface $storage, $update = TRUE) { }
119 public function onQueuePreDelete(EntityQueueInterface $queue, EntityStorageInterface $storage) { }
124 public function onQueuePostDelete(EntityQueueInterface $queue, EntityStorageInterface $storage) { }
129 public function onQueuePostLoad(EntityQueueInterface $queue, EntityStorageInterface $storage) { }