Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
85 lines (72 loc) · 1.87 KB

File metadata and controls

85 lines (72 loc) · 1.87 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Workflow;
/**
* @author Fabien Potencier <fabien@symfony.com>
* @author Grégoire Pineau <lyrixx@lyrixx.info>
*/
class Transition
{
/**
* @var Arc[]
*/
private array $fromArcs;
/**
* @var Arc[]
*/
private array $toArcs;
/**
* @param string|string[]|Arc[] $froms
* @param string|string[]|Arc[] $tos
*/
public function __construct(
private string $name,
string|array $froms,
string|array $tos,
) {
$this->fromArcs = array_map($this->normalize(...), (array) $froms);
$this->toArcs = array_map($this->normalize(...), (array) $tos);
}
public function getName(): string
{
return $this->name;
}
/**
* @return $asArc is true ? array<Arc> : array<string>
*/
public function getFroms(bool $asArc = false): array
{
if ($asArc) {
return $this->fromArcs;
}
return array_column($this->fromArcs, 'place');
}
/**
* @return $asArc is true ? array<Arc> : array<string>
*/
public function getTos(bool $asArc = false): array
{
if ($asArc) {
return $this->toArcs;
}
return array_column($this->toArcs, 'place');
}
// No type hint for $arc to avoid implicit cast
private function normalize(mixed $arc): Arc
{
if ($arc instanceof Arc) {
return $arc;
}
if (\is_string($arc)) {
return new Arc($arc, 1);
}
throw new \TypeError(\sprintf('The type of arc is invalid. Expected string or Arc, got "%s".', get_debug_type($arc)));
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.