3 namespace Drupal\embed\EmbedType;
5 use Drupal\Component\Utility\NestedArray;
6 use Drupal\Core\Form\FormStateInterface;
7 use Drupal\Core\Plugin\PluginBase;
10 * Defines a base implementation that most embed type plugins will extend.
14 abstract class EmbedTypeBase extends PluginBase implements EmbedTypeInterface {
19 public function __construct(array $configuration, $plugin_id, $plugin_definition) {
20 parent::__construct($configuration, $plugin_id, $plugin_definition);
21 $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $this->configuration);
27 public function calculateDependencies() {
34 public function defaultConfiguration() {
41 public function getConfiguration() {
42 return $this->configuration;
48 public function getConfigurationValue($name, $default = NULL) {
49 $configuration = $this->getConfiguration();
50 if (array_key_exists($name, $configuration)) {
51 return $configuration[$name];
61 public function setConfiguration(array $configuration) {
62 $this->configuration = $configuration;
68 public function setConfigurationValue($name, $value) {
69 $this->configuration[$name] = $value;
75 public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
82 public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
89 public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
90 if (!$form_state->hasAnyErrors()) {
91 $this->setConfiguration(
93 $form_state->getValues(),
94 $this->defaultConfiguration()