commerce_license-8.x-2.x-dev/src/Plugin/Commerce/LicensePeriod/LicensePeriodBase.php
src/Plugin/Commerce/LicensePeriod/LicensePeriodBase.php
<?php namespace Drupal\commerce_license\Plugin\Commerce\LicensePeriod; use Drupal\Component\Plugin\PluginBase; use Drupal\Component\Utility\NestedArray; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Base class for license period plugins. */ abstract class LicensePeriodBase extends PluginBase implements ContainerFactoryPluginInterface, LicensePeriodInterface { use StringTranslationTrait; /** * Constructs a \Drupal\Component\Plugin\PluginBase object. * * @param array $configuration * A configuration array containing information about the plugin instance. * @param string $plugin_id * The plugin_id for the plugin instance. * @param mixed $plugin_definition * The plugin implementation definition. */ final public function __construct(array $configuration, $plugin_id, $plugin_definition) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->setConfiguration($configuration); } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static($configuration, $plugin_id, $plugin_definition); } /** * {@inheritdoc} */ public function getLabel(): string { return $this->pluginDefinition['label']; } /** * {@inheritdoc} */ public function getDescription(): string { return $this->pluginDefinition['description']; } /** * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { return []; } /** * {@inheritdoc} */ public function validateConfigurationForm(array &$form, FormStateInterface $form_state) { } /** * {@inheritdoc} */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { } /** * {@inheritdoc} */ public function getConfiguration() { return $this->configuration; } /** * {@inheritdoc} */ public function setConfiguration(array $configuration) { $this->configuration = NestedArray::mergeDeep($this->defaultConfiguration(), $configuration); } /** * {@inheritdoc} */ public function defaultConfiguration() { return []; } /** * {@inheritdoc} */ public function calculateDependencies() { return []; } /** * {@inheritdoc} */ public function calculateStart(\DateTimeImmutable $date) { return $date; } /** * {@inheritdoc} */ public function calculateEnd(\DateTimeImmutable $start) { return $start; } }