entity_change_notifier-8.x-1.0/src/Entity/Destination.php

src/Entity/Destination.php
<?php

namespace Drupal\entity_change_notifier\Entity;

use Drupal\Core\Config\Entity\ConfigEntityBase;
use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;

/**
 * Defines the Destination entity.
 *
 * @ConfigEntityType(
 *   id = "ecn_destination",
 *   label = @Translation("Destination"),
 *   label_singular = @Translation("destination"),
 *   label_plural = @Translation("destinations"),
 *   label_count = @PluralTranslation(
 *     singular = "@count destination",
 *     plural = "@count destinations",
 *   ),
 *   label_collection = @Translation("Destinations"),
 *   handlers = {
 *     "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
 *     "list_builder" = "Drupal\entity_change_notifier\DestinationListBuilder",
 *     "form" = {
 *       "add" = "Drupal\entity_change_notifier\Form\DestinationForm",
 *       "edit" = "Drupal\entity_change_notifier\Form\DestinationForm",
 *       "delete" = "Drupal\entity_change_notifier\Form\DestinationDeleteForm"
 *     },
 *     "route_provider" = {
 *       "html" = "Drupal\Core\Entity\Routing\AdminHtmlRouteProvider",
 *     },
 *   },
 *   config_prefix = "ecn_destination",
 *   admin_permission = "administer site configuration",
 *   entity_keys = {
 *     "id" = "id",
 *     "label" = "label",
 *     "uuid" = "uuid"
 *   },
 *   links = {
 *     "canonical" = "/admin/config/services/entity-change-notifier/destination/{ecn_destination}",
 *     "add-form" = "/admin/config/services/entity-change-notifier/destination/add",
 *     "edit-form" = "/admin/config/services/entity-change-notifier/destination/{ecn_destination}/edit",
 *     "delete-form" = "/admin/config/services/entity-change-notifier/destination/{ecn_destination}/delete",
 *     "collection" = "/admin/config/services/entity-change-notifier/destination"
 *   }
 * )
 */
class Destination extends ConfigEntityBase implements DestinationInterface {

  /**
   * The Destination ID.
   *
   * @var string
   */
  protected $id;

  /**
   * The Destination label.
   *
   * @var string
   */
  protected $label;

  /**
   * The unique plugin identifier of the message destination.
   *
   * @var string
   */
  protected $message_destination;

  /**
   * An array of settings for the message destination.
   *
   * @var array
   */
  protected $message_destination_settings = [];

  /**
   * The number of seconds a new message should be valid for.
   *
   * @var int
   */
  protected $message_expiry;

  /**
   * The plugins this config entity is dependent on.
   *
   * This is used to allow plugins to declare config dependencies.
   *
   * @var \Drupal\Core\Plugin\DefaultSingleLazyPluginCollection
   */
  private $messageDestinationPluginCollection;

  /**
   * {@inheritdoc}
   */
  public function getMessageDestination() {
    return $this->message_destination;
  }

  /**
   * {@inheritdoc}
   */
  public function getMessageDestinationSettings() {
    return $this->message_destination_settings;
  }

  /**
   * {@inheritdoc}
   */
  public function getLabel() {
    return $this->label;
  }

  /**
   * {@inheritdoc}
   */
  public function setMessageDestinationSettings(array $message_destination_settings) {
    $this->message_destination_settings = $message_destination_settings;
  }

  /**
   * {@inheritdoc}
   */
  public function getPluginCollections() {
    // When adding a new destination this property may not be set yet.
    if (!$this->message_destination) {
      return [
        'message_destination_settings' => [],
      ];
    }

    if (!isset($this->messageDestinationPluginCollection)) {
      $this->messageDestinationPluginCollection = new DefaultSingleLazyPluginCollection(\Drupal::service('entity_change_notifier.message_destination_manager'), $this->getMessageDestination(), $this->getMessageDestinationSettings());
    }
    return [
      'message_destination_settings' => $this->messageDestinationPluginCollection,
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function setMessageExpiry($seconds) {
    $this->message_expiry = $seconds;
  }

  /**
   * {@inheritdoc}
   */
  public function getMessageExpiry() {
    return $this->message_expiry;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc