1 | <?php |
||||
2 | |||||
3 | declare(strict_types=1); |
||||
4 | |||||
5 | namespace EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Action; |
||||
6 | |||||
7 | // phpcs:disable |
||||
8 | use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Embeddable\FakerData\EmbeddableFakerDataCreator; |
||||
9 | use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Embeddable\Interfaces\HasEmbeddableInterfaceCreator; |
||||
10 | use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Embeddable\Interfaces\Objects\EmbeddableInterfaceCreator; |
||||
11 | use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Embeddable\Objects\EmbeddableCreator; |
||||
12 | use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Embeddable\Traits\HasEmbeddableTraitCreator; |
||||
13 | use RuntimeException; |
||||
14 | |||||
15 | // phpcs:enable |
||||
16 | class CreateEmbeddableAction implements ActionInterface |
||||
17 | { |
||||
18 | |||||
19 | /** |
||||
20 | * @var EmbeddableFakerDataCreator |
||||
21 | */ |
||||
22 | private $fakerDataCreator; |
||||
23 | /** |
||||
24 | * @var EmbeddableInterfaceCreator |
||||
25 | */ |
||||
26 | private $interfaceCreator; |
||||
27 | /** |
||||
28 | * @var HasEmbeddableInterfaceCreator |
||||
29 | */ |
||||
30 | private $hasInterfaceCreator; |
||||
31 | /** |
||||
32 | * @var EmbeddableCreator |
||||
33 | */ |
||||
34 | private $embeddableCreator; |
||||
35 | /** |
||||
36 | * @var HasEmbeddableTraitCreator |
||||
37 | */ |
||||
38 | private $hasCreator; |
||||
39 | |||||
40 | /** |
||||
41 | * @var string|null |
||||
42 | */ |
||||
43 | private $catName; |
||||
44 | |||||
45 | /** |
||||
46 | * @var string|null |
||||
47 | */ |
||||
48 | private $name; |
||||
49 | |||||
50 | 3 | public function __construct( |
|||
51 | EmbeddableFakerDataCreator $fakerDataCreator, |
||||
52 | EmbeddableInterfaceCreator $interfaceCreator, |
||||
53 | HasEmbeddableInterfaceCreator $hasInterfaceCreator, |
||||
54 | EmbeddableCreator $embeddableCreator, |
||||
55 | HasEmbeddableTraitCreator $hasCreator |
||||
56 | ) { |
||||
57 | 3 | $this->fakerDataCreator = $fakerDataCreator; |
|||
58 | 3 | $this->interfaceCreator = $interfaceCreator; |
|||
59 | 3 | $this->hasInterfaceCreator = $hasInterfaceCreator; |
|||
60 | 3 | $this->embeddableCreator = $embeddableCreator; |
|||
61 | 3 | $this->hasCreator = $hasCreator; |
|||
62 | 3 | } |
|||
63 | |||||
64 | |||||
65 | /** |
||||
66 | * This must be the method that actually performs the action |
||||
67 | * |
||||
68 | * All your requirements, configuration and dependencies must be called with individual setters |
||||
69 | */ |
||||
70 | 3 | public function run(): void |
|||
71 | { |
||||
72 | 3 | if ('' === (string)$this->catName) { |
|||
73 | 1 | throw new RuntimeException('You must call setCatName before running this action'); |
|||
74 | } |
||||
75 | 2 | if ('' === (string)$this->name) { |
|||
76 | 1 | throw new RuntimeException('You must call setName before running this action'); |
|||
77 | } |
||||
78 | 1 | $this->fakerDataCreator->setCatName($this->catName)->setName($this->name)->createTargetFileObject()->write(); |
|||
0 ignored issues
–
show
Bug
introduced
by
![]() It seems like
$this->name can also be of type null ; however, parameter $name of EdmondsCommerce\Doctrine...dableCreator::setName() does only seem to accept string , maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
79 | 1 | $this->interfaceCreator->setCatName($this->catName)->setName($this->name)->createTargetFileObject()->write(); |
|||
80 | 1 | $this->hasInterfaceCreator->setCatName($this->catName)->setName($this->name)->createTargetFileObject()->write(); |
|||
81 | 1 | $this->embeddableCreator->setCatName($this->catName)->setName($this->name)->createTargetFileObject()->write(); |
|||
82 | 1 | $this->hasCreator->setCatName($this->catName)->setName($this->name)->createTargetFileObject()->write(); |
|||
83 | 1 | } |
|||
84 | |||||
85 | 3 | public function setProjectRootNamespace(string $projectRootNamespace) |
|||
86 | { |
||||
87 | 3 | $this->fakerDataCreator->setProjectRootNamespace($projectRootNamespace); |
|||
88 | 3 | $this->interfaceCreator->setProjectRootNamespace($projectRootNamespace); |
|||
89 | 3 | $this->hasInterfaceCreator->setProjectRootNamespace($projectRootNamespace); |
|||
90 | 3 | $this->embeddableCreator->setProjectRootNamespace($projectRootNamespace); |
|||
91 | 3 | $this->hasCreator->setProjectRootNamespace($projectRootNamespace); |
|||
92 | |||||
93 | 3 | return $this; |
|||
94 | } |
||||
95 | |||||
96 | 3 | public function setProjectRootDirectory(string $projectRootDirectory) |
|||
97 | { |
||||
98 | 3 | $this->fakerDataCreator->setProjectRootDirectory($projectRootDirectory); |
|||
99 | 3 | $this->interfaceCreator->setProjectRootDirectory($projectRootDirectory); |
|||
100 | 3 | $this->hasInterfaceCreator->setProjectRootDirectory($projectRootDirectory); |
|||
101 | 3 | $this->embeddableCreator->setProjectRootDirectory($projectRootDirectory); |
|||
102 | 3 | $this->hasCreator->setProjectRootDirectory($projectRootDirectory); |
|||
103 | |||||
104 | 3 | return $this; |
|||
105 | } |
||||
106 | |||||
107 | /** |
||||
108 | * @param string $catName |
||||
109 | * |
||||
110 | * @return CreateEmbeddableAction |
||||
111 | */ |
||||
112 | 2 | public function setCatName(string $catName): CreateEmbeddableAction |
|||
113 | { |
||||
114 | 2 | $this->catName = $catName; |
|||
115 | |||||
116 | 2 | return $this; |
|||
117 | } |
||||
118 | |||||
119 | /** |
||||
120 | * @param string $name |
||||
121 | * |
||||
122 | * @return CreateEmbeddableAction |
||||
123 | */ |
||||
124 | 2 | public function setName(string $name): CreateEmbeddableAction |
|||
125 | { |
||||
126 | 2 | $this->name = $name; |
|||
127 | |||||
128 | 2 | return $this; |
|||
129 | } |
||||
130 | } |
||||
131 |