GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 75bdf9...8faa57 )
by joseph
83:56 queued 81:04
created

CreateEntityAction::run()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 25
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 2.0017

Importance

Changes 0
Metric Value
cc 2
eloc 12
nc 2
nop 0
dl 0
loc 25
ccs 12
cts 13
cp 0.9231
crap 2.0017
rs 9.8666
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Action;
4
5
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Process\ReplaceEntityIdFieldProcess;
6
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entities\EntityCreator;
7
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Factories\AbstractEntityFactoryCreator;
8
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Factories\EntityFactoryCreator;
9
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Interfaces\EntityInterfaceCreator;
10
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Repositories\AbstractEntityRepositoryCreator;
11
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Repositories\EntityRepositoryCreator;
12
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Src\Entity\Savers\EntitySaverCreator;
13
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Tests\Assets\Entity\Fixtures\EntityFixtureCreator;
14
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Tests\BootstrapCreator;
15
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Tests\Entities\AbstractEntityTestCreator;
16
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Creation\Tests\Entities\EntityTestCreator;
17
18
/**
19
 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
20
 * @SuppressWarnings(PHPMD.ExcessiveParameterList)
21
 */
22
class CreateEntityAction implements ActionInterface
23
{
24
    /**
25
     * @var EntityCreator
26
     */
27
    private $entityCreator;
28
    /**
29
     * @var AbstractEntityFactoryCreator
30
     */
31
    private $abstractEntityFactoryCreator;
32
    /**
33
     * @var EntityFactoryCreator
34
     */
35
    private $entityFactoryCreator;
36
    /**
37
     * @var EntityInterfaceCreator
38
     */
39
    private $entityInterfaceCreator;
40
    /**
41
     * @var AbstractEntityRepositoryCreator
42
     */
43
    private $abstractEntityRepositoryCreator;
44
    /**
45
     * @var EntityRepositoryCreator
46
     */
47
    private $entityRepositoryCreator;
48
49
    /**
50
     * @var string
51
     */
52
    private $entityFqn;
53
    /**
54
     * @var EntityFixtureCreator
55
     */
56
    private $entityFixtureCreator;
57
    /**
58
     * @var AbstractEntityTestCreator
59
     */
60
    private $abstractEntityTestCreator;
61
    /**
62
     * @var EntityTestCreator
63
     */
64
    private $entityTestCreator;
65
    /**
66
     * @var EntitySaverCreator
67
     */
68
    private $entitySaverCreator;
69
70
    /**
71
     * @var bool
72
     */
73
    private $generateSaver = false;
74
    /**
75
     * @var BootstrapCreator
76
     */
77
    private $bootstrapCreator;
78
79 2
    public function __construct(
80
        EntityCreator $entityCreator,
81
        AbstractEntityFactoryCreator $abstractEntityFactoryCreator,
82
        EntityFactoryCreator $entityFactoryCreator,
83
        EntityInterfaceCreator $entityInterfaceCreator,
84
        AbstractEntityRepositoryCreator $abstractEntityRepositoryCreator,
85
        EntityRepositoryCreator $entityRepositoryCreator,
86
        EntitySaverCreator $entitySaverCreator,
87
        EntityFixtureCreator $entityFixtureCreator,
88
        AbstractEntityTestCreator $abstractEntityTestCreator,
89
        BootstrapCreator $bootstrapCreator,
90
        EntityTestCreator $entityTestCreator
91
    ) {
92 2
        $this->entityCreator                   = $entityCreator;
93 2
        $this->abstractEntityFactoryCreator    = $abstractEntityFactoryCreator;
94 2
        $this->entityFactoryCreator            = $entityFactoryCreator;
95 2
        $this->entityInterfaceCreator          = $entityInterfaceCreator;
96 2
        $this->abstractEntityRepositoryCreator = $abstractEntityRepositoryCreator;
97 2
        $this->entityRepositoryCreator         = $entityRepositoryCreator;
98 2
        $this->entitySaverCreator              = $entitySaverCreator;
99 2
        $this->entityFixtureCreator            = $entityFixtureCreator;
100 2
        $this->abstractEntityTestCreator       = $abstractEntityTestCreator;
101 2
        $this->entityTestCreator               = $entityTestCreator;
102 2
        $this->bootstrapCreator                = $bootstrapCreator;
103 2
    }
104
105 2
    public function setEntityFqn(string $entityFqn): self
106
    {
107 2
        $this->entityFqn = $entityFqn;
108 2
        $this->entityFactoryCreator->setNewObjectFqnFromEntityFqn($entityFqn);
109 2
        $this->entityInterfaceCreator->setNewObjectFqnFromEntityFqn($entityFqn);
110 2
        $this->entityRepositoryCreator->setNewObjectFqnFromEntityFqn($entityFqn);
111 2
        $this->entitySaverCreator->setNewObjectFqnFromEntityFqn($entityFqn);
112 2
        $this->entityFixtureCreator->setNewObjectFqnFromEntityFqn($entityFqn);
113 2
        $this->entityTestCreator->setNewObjectFqnFromEntityFqn($entityFqn);
114
115 2
        return $this;
116
    }
117
118
    public function setPrimaryKeyTraitFqn(string $primaryKeyTraitFqn)
119
    {
120
        $replaceIdFieldProcess = new ReplaceEntityIdFieldProcess();
121
        $replaceIdFieldProcess->setIdTraitFqn($primaryKeyTraitFqn);
122
        $this->entityCreator->setReplaceIdFieldProcess($replaceIdFieldProcess);
123
    }
124
125
    /**
126
     * Create all the Entity related code
127
     *
128
     * @throws \EdmondsCommerce\DoctrineStaticMeta\Exception\DoctrineStaticMetaException
129
     */
130 2
    public function run(): void
131
    {
132 2
        $this->entityCreator->createTargetFileObject($this->entityFqn)->write();
133
134 2
        $this->abstractEntityFactoryCreator->createTargetFileObject()->writeIfNotExists();
135
136 2
        $this->entityFactoryCreator->createTargetFileObject()->write();
137
138 2
        $this->entityInterfaceCreator->createTargetFileObject()->write();
139
140 2
        $this->abstractEntityRepositoryCreator->createTargetFileObject()->writeIfNotExists();
141
142 2
        $this->entityRepositoryCreator->createTargetFileObject()->write();
143
144 2
        if (true === $this->generateSaver) {
145
            $this->entitySaverCreator->createTargetFileObject()->write();
146
        }
147
148 2
        $this->entityFixtureCreator->createTargetFileObject()->write();
149
150 2
        $this->abstractEntityTestCreator->createTargetFileObject()->writeIfNotExists();
151
152 2
        $this->bootstrapCreator->createTargetFileObject()->writeIfNotExists();
153
154 2
        $this->entityTestCreator->createTargetFileObject()->write();
155 2
    }
156
157
    public function getCreatedEntityFilePath(): string
158
    {
159
        return $this->entityCreator->getTargetFile()->getPath();
160
    }
161
162 2
    public function setProjectRootNamespace(string $projectRootNamespace): self
163
    {
164 2
        $this->entityCreator->setProjectRootNamespace($projectRootNamespace);
165 2
        $this->abstractEntityFactoryCreator->setProjectRootNamespace($projectRootNamespace);
166 2
        $this->entityFactoryCreator->setProjectRootNamespace($projectRootNamespace);
167 2
        $this->entityInterfaceCreator->setProjectRootNamespace($projectRootNamespace);
168 2
        $this->abstractEntityRepositoryCreator->setProjectRootNamespace($projectRootNamespace);
169 2
        $this->entityRepositoryCreator->setProjectRootNamespace($projectRootNamespace);
170 2
        $this->entitySaverCreator->setProjectRootNamespace($projectRootNamespace);
171 2
        $this->entityFixtureCreator->setProjectRootNamespace($projectRootNamespace);
172 2
        $this->abstractEntityTestCreator->setProjectRootNamespace($projectRootNamespace);
173 2
        $this->bootstrapCreator->setProjectRootNamespace($projectRootNamespace);
174 2
        $this->entityTestCreator->setProjectRootNamespace($projectRootNamespace);
175
176 2
        return $this;
177
    }
178
179 2
    public function setProjectRootDirectory(string $projectRootDirectory): self
180
    {
181 2
        $this->entityCreator->setProjectRootDirectory($projectRootDirectory);
182 2
        $this->abstractEntityFactoryCreator->setProjectRootDirectory($projectRootDirectory);
183 2
        $this->entityFactoryCreator->setProjectRootDirectory($projectRootDirectory);
184 2
        $this->entityInterfaceCreator->setProjectRootDirectory($projectRootDirectory);
185 2
        $this->abstractEntityRepositoryCreator->setProjectRootDirectory($projectRootDirectory);
186 2
        $this->entityRepositoryCreator->setProjectRootDirectory($projectRootDirectory);
187 2
        $this->entitySaverCreator->setProjectRootDirectory($projectRootDirectory);
188 2
        $this->entityFixtureCreator->setProjectRootDirectory($projectRootDirectory);
189 2
        $this->abstractEntityTestCreator->setProjectRootDirectory($projectRootDirectory);
190 2
        $this->bootstrapCreator->setProjectRootDirectory($projectRootDirectory);
191 2
        $this->entityTestCreator->setProjectRootDirectory($projectRootDirectory);
192
193 2
        return $this;
194
    }
195
196
    /**
197
     * @param bool $generateSaver
198
     *
199
     * @return CreateEntityAction
200
     */
201
    public function setGenerateSaver(bool $generateSaver): CreateEntityAction
202
    {
203
        $this->generateSaver = $generateSaver;
204
205
        return $this;
206
    }
207
}
208