class State in Drupal 10
Same name in this branch
- 10 core/modules/workflows/src/State.php \Drupal\workflows\State
- 10 core/lib/Drupal/Core/State/State.php \Drupal\Core\State\State
Same name and namespace in other branches
- 8 core/modules/workflows/src/State.php \Drupal\workflows\State
- 9 core/modules/workflows/src/State.php \Drupal\workflows\State
A value object representing a workflow state.
Hierarchy
- class \Drupal\workflows\State implements \Drupal\workflows\StateInterface
Expanded class hierarchy of State
9 files declare their use of State
- ContentModerationConfigureForm.php in core/
modules/ content_moderation/ src/ Form/ ContentModerationConfigureForm.php - Permissions.php in core/
modules/ content_moderation/ src/ Permissions.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 - WorkflowEditForm.php in core/
modules/ workflows/ src/ Form/ WorkflowEditForm.php
2 string references to 'State'
- WorkflowEditForm::form in core/
modules/ workflows/ src/ Form/ WorkflowEditForm.php - Gets the actual form array to be built.
- workflows_help in core/
modules/ workflows/ workflows.module - Implements hook_help().
File
- core/
modules/ workflows/ src/ State.php, line 8
Namespace
Drupal\workflowsView 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
* The state.
*
* @return string
* The label of the state.
*/
public static function labelCallback(StateInterface $state) {
return $state
->label();
}
}