Pull merge.
[yaffs-website] / web / core / lib / Drupal / Core / Action / ConfigurableActionBase.php
1 <?php
2
3 namespace Drupal\Core\Action;
4
5 use Drupal\Component\Plugin\ConfigurablePluginInterface;
6 use Drupal\Core\Form\FormStateInterface;
7 use Drupal\Core\Plugin\PluginFormInterface;
8
9 /**
10  * Provides a base implementation for a configurable Action plugin.
11  */
12 abstract class ConfigurableActionBase extends ActionBase implements ConfigurablePluginInterface, PluginFormInterface {
13
14   /**
15    * {@inheritdoc}
16    */
17   public function __construct(array $configuration, $plugin_id, $plugin_definition) {
18     parent::__construct($configuration, $plugin_id, $plugin_definition);
19
20     $this->setConfiguration($configuration);
21   }
22
23   /**
24    * {@inheritdoc}
25    */
26   public function defaultConfiguration() {
27     return [];
28   }
29
30   /**
31    * {@inheritdoc}
32    */
33   public function getConfiguration() {
34     return $this->configuration;
35   }
36
37   /**
38    * {@inheritdoc}
39    */
40   public function setConfiguration(array $configuration) {
41     $this->configuration = $configuration + $this->defaultConfiguration();
42   }
43
44   /**
45    * {@inheritdoc}
46    */
47   public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
48   }
49
50   /**
51    * {@inheritdoc}
52    */
53   public function calculateDependencies() {
54     return [];
55   }
56
57 }