ifthenelse-8.x-1.x-dev-no-core/modules/contrib/if_then_else/src/core/Nodes/Node.php

modules/contrib/if_then_else/src/core/Nodes/Node.php
<?php

namespace Drupal\if_then_else\core\Nodes;

use Drupal\if_then_else\Event\GraphValidationEvent;
use Drupal\if_then_else\Event\NodeValidationEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Drupal\if_then_else\Event\NodeSubscriptionEvent;

/**
 * Node abstract class.
 */
abstract class Node implements EventSubscriberInterface {

  protected $inputs;
  protected $outputs;

  /**
   * Current condition data object.
   *
   * @var object
   */
  protected $data;

  /**
   * Returns node name.
   *
   * @return string
   *   Node name.
   */
  abstract public static function getName();

  /**
   * Registering event subscribers.
   */
  public static function getSubscribedEvents() {
    return [
      // Static class constant => method on this class.
      NodeSubscriptionEvent::EVENT_NAME => 'registerNode',
      'if_then_else_' . static::getName() . '_graph_validation_event' => 'validateGraph',
      'if_then_else_' . static::getName() . '_node_validation_event' => 'validateNode',
    ];
  }

  /**
   * Register the node so that If Then Else controller recognizes it.
   *
   * @param \Drupal\if_then_else\Event\NodeSubscriptionEvent $event
   *   Event node.
   */
  abstract public function registerNode(NodeSubscriptionEvent $event);

  /**
   * Validates the node.
   *
   * @param \Drupal\if_then_else\Event\NodeValidationEvent $event
   *   Event node.
   */
  public function validateNode(NodeValidationEvent $event) {}

  /**
   * Validates the graph.
   *
   * @param \Drupal\if_then_else\Event\GraphValidationEvent $event
   *   Event node.
   */
  public function validateGraph(GraphValidationEvent $event) {}

  /**
   * Set input values for a node.
   *
   * @param array $inputs
   *   Sets the input array.
   */
  public function setInputs(array $inputs) {
    $this->inputs = $inputs;
  }

  /**
   * Return output of node.
   *
   * @return array
   *   Returns an array of outputs.
   */
  public function getOutputs() {
    return $this->outputs;
  }

  /**
   * Process input to produce output.
   */
  abstract public function process();

  /**
   * Set user-selected data.
   *
   * @param object $data
   *   Node data.
   */
  public function setData($data) {
    $this->data = $data;
  }

}

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

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