depcalc-8.x-1.x-dev/src/Event/CalculateEntityDependenciesEvent.php

src/Event/CalculateEntityDependenciesEvent.php
<?php

namespace Drupal\depcalc\Event;

use Drupal\depcalc\DependencyStack;
use Drupal\depcalc\DependentEntityWrapperInterface;
use Symfony\Contracts\EventDispatcher\Event;

/**
 * The event dispatched to calculate dependencies.
 */
class CalculateEntityDependenciesEvent extends Event {

  /**
   * The wrapper of the entity for which we are calculating dependencies.
   *
   * @var \Drupal\depcalc\DependentEntityWrapperInterface
   */
  protected $wrapper;

  /**
   * The dependency stack.
   *
   * @var \Drupal\depcalc\DependencyStack
   */
  protected $stack;

  /**
   * CalculateEntityDependenciesEvent constructor.
   *
   * @param \Drupal\depcalc\DependentEntityWrapperInterface $wrapper
   *   The entity for which we are calculating dependencies.
   * @param \Drupal\depcalc\DependencyStack $stack
   *   The dependency stack.
   */
  public function __construct(DependentEntityWrapperInterface $wrapper, DependencyStack $stack) {
    $this->wrapper = $wrapper;
    $this->stack = $stack;
  }

  /**
   * Get the dependency wrapper of the entity.
   *
   * @return \Drupal\depcalc\DependentEntityWrapperInterface
   *   The wrapper.
   */
  public function getWrapper() {
    return $this->wrapper;
  }

  /**
   * Get the entity for which dependencies are being calculated.
   *
   * @return \Drupal\Core\Entity\EntityInterface
   *   The entity.
   */
  public function getEntity() {
    return $this->wrapper->getEntity();
  }

  /**
   * Get the dependency stack.
   *
   * @return \Drupal\depcalc\DependencyStack
   *   The dependency stack.
   */
  public function getStack() {
    return $this->stack;
  }

  /**
   * Add a dependency to this wrapper.
   *
   * @param \Drupal\depcalc\DependentEntityWrapperInterface $dependency
   *   The dependency to be added.
   */
  public function addDependency(DependentEntityWrapperInterface $dependency) {
    $dependencies = $this->getWrapper()->getDependencies();
    if (!array_key_exists($dependency->getUuid(), $dependencies)) {
      $this->getWrapper()->addDependency($dependency, $this->getStack());
    }
  }

  /**
   * Add a group of dependencies to this wrapper.
   *
   * @param \Drupal\depcalc\DependentEntityWrapperInterface ...$dependencies
   *   The dependencies to add to this wrapper.
   */
  public function setDependencies(DependentEntityWrapperInterface ...$dependencies) {
    foreach ($dependencies as $key => $dependency) {
      $this->addDependency($dependency);
    }
  }

  /**
   * A list of all uuids this entity is dependent on.
   *
   * @return \Drupal\depcalc\DependentEntityWrapperInterface[]
   *   The dependencies.
   */
  public function getDependencies() {
    return $this->stack->getDependenciesByUuid(array_keys($this->getWrapper()->getDependencies()));
  }

  /**
   * A list of modules this entity depends upon.
   *
   * @return string[]
   *   The module dependencies.
   */
  public function getModuleDependencies() {
    return $this->getWrapper()->getModuleDependencies();
  }

  /**
   * A list of module dependencies to add to this wrapper.
   *
   * @param string[] $modules
   *   The list of modules.
   */
  public function setModuleDependencies(array $modules) {
    $this->getWrapper()->addModuleDependencies($modules);
  }

}

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

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