class State

Same name in this branch
  1. 8.9.x core/lib/Drupal/Core/State/State.php \Drupal\Core\State\State
Same name in other branches
  1. 9 core/modules/workflows/src/State.php \Drupal\workflows\State
  2. 9 core/lib/Drupal/Core/State/State.php \Drupal\Core\State\State
  3. 10 core/modules/workflows/src/State.php \Drupal\workflows\State
  4. 10 core/lib/Drupal/Core/State/State.php \Drupal\Core\State\State
  5. 11.x core/modules/workflows/src/State.php \Drupal\workflows\State
  6. 11.x core/lib/Drupal/Core/State/State.php \Drupal\Core\State\State

A value object representing a workflow state.

Hierarchy

Expanded class hierarchy of State

9 files declare their use of State
ContentModerationConfigureForm.php in core/modules/content_moderation/src/Form/ContentModerationConfigureForm.php
PredefinedStatesWorkflowTestType.php in core/modules/workflows/tests/modules/workflow_type_test/src/Plugin/WorkflowType/PredefinedStatesWorkflowTestType.php
StateTest.php in core/modules/workflows/tests/src/Unit/StateTest.php
StateTransitionValidationTest.php in core/modules/content_moderation/tests/src/Unit/StateTransitionValidationTest.php
WorkflowEditForm.php in core/modules/workflows/src/Form/WorkflowEditForm.php

... See full list

79 string references to 'State'
AliasTest::testWhitelist in core/modules/path_alias/tests/src/Kernel/AliasTest.php
Tests the alias whitelist.
AliasTest::testWhitelistCacheDeletionMidRequest in core/modules/path_alias/tests/src/Kernel/AliasTest.php
Tests situation where the whitelist cache is deleted mid-request.
CacheableMetadataCalculationTest::create in core/modules/views/tests/modules/views_test_cacheable_metadata_calculation/src/Plugin/views/access/CacheableMetadataCalculationTest.php
Creates an instance of the plugin.
CacheableMetadataCalculationTest::setUp in core/modules/views/tests/src/Kernel/CacheableMetadataCalculationTest.php
CKEditor::create in core/modules/ckeditor/src/Plugin/Editor/CKEditor.php
Creates an instance of the plugin.

... See full list

File

core/modules/workflows/src/State.php, line 8

Namespace

Drupal\workflows
View source
class State implements StateInterface {
    
    /**
     * The workflow the state is attached to.
     *
     * @var \Drupal\workflows\WorkflowTypeInterface
     */
    protected $workflow;
    
    /**
     * The state's ID.
     *
     * @var string
     */
    protected $id;
    
    /**
     * The state's label.
     *
     * @var string
     */
    protected $label;
    
    /**
     * The state's weight.
     *
     * @var int
     */
    protected $weight;
    
    /**
     * State constructor.
     *
     * @param \Drupal\workflows\WorkflowTypeInterface $workflow
     *   The workflow the state is attached to.
     * @param string $id
     *   The state's ID.
     * @param string $label
     *   The state's label.
     * @param int $weight
     *   The state's weight.
     */
    public function __construct(WorkflowTypeInterface $workflow, $id, $label, $weight = 0) {
        $this->workflow = $workflow;
        $this->id = $id;
        $this->label = $label;
        $this->weight = $weight;
    }
    
    /**
     * {@inheritdoc}
     */
    public function id() {
        return $this->id;
    }
    
    /**
     * {@inheritdoc}
     */
    public function label() {
        return $this->label;
    }
    
    /**
     * {@inheritdoc}
     */
    public function weight() {
        return $this->weight;
    }
    
    /**
     * {@inheritdoc}
     */
    public function canTransitionTo($to_state_id) {
        return $this->workflow
            ->hasTransitionFromStateToState($this->id, $to_state_id);
    }
    
    /**
     * {@inheritdoc}
     */
    public function getTransitionTo($to_state_id) {
        if (!$this->canTransitionTo($to_state_id)) {
            throw new \InvalidArgumentException("Can not transition to '{$to_state_id}' state");
        }
        return $this->workflow
            ->getTransitionFromStateToState($this->id(), $to_state_id);
    }
    
    /**
     * {@inheritdoc}
     */
    public function getTransitions() {
        return $this->workflow
            ->getTransitionsForState($this->id);
    }
    
    /**
     * Helper method to convert a State value object to a label.
     *
     * @param \Drupal\workflows\StateInterface $state
     *
     * @return string
     *   The label of the state.
     */
    public static function labelCallback(StateInterface $state) {
        return $state->label();
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
State::$id protected property The state's ID.
State::$label protected property The state's label.
State::$weight protected property The state's weight.
State::$workflow protected property The workflow the state is attached to.
State::canTransitionTo public function Determines if the state can transition to the provided state ID. Overrides StateInterface::canTransitionTo
State::getTransitions public function Gets all the possible transition objects for the state. Overrides StateInterface::getTransitions
State::getTransitionTo public function Gets the Transition object for the provided state ID. Overrides StateInterface::getTransitionTo
State::id public function Gets the state's ID. Overrides StateInterface::id
State::label public function Gets the state's label. Overrides StateInterface::label
State::labelCallback public static function Helper method to convert a State value object to a label.
State::weight public function Gets the state's weight. Overrides StateInterface::weight
State::__construct public function State constructor.
StateInterface::PLUGIN_FORM_KEY constant The key of the state plugin form.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.