DtoPropertyProcessor::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 2
ccs 1
cts 1
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 *  This file is part of the Micro framework package.
7
 *
8
 *  (c) Stanislau Komar <[email protected]>
9
 *
10
 *  For the full copyright and license information, please view the LICENSE
11
 *  file that was distributed with this source code.
12
 */
13
14
namespace Micro\Library\DTO\Preparation\Processor\Property;
15
16
use Micro\Library\DTO\ClassDef\ClassDefinition;
17
use Micro\Library\DTO\ClassDef\PropertyDefinition;
18
use Micro\Library\DTO\Helper\ClassMetadataHelperInterface;
19
20
class DtoPropertyProcessor implements PropertyProcessorInterface
21
{
22 6
    public function __construct(private ClassMetadataHelperInterface $classMetadataHelper)
23
    {
24 6
    }
25
26 1
    public function process(PropertyDefinition $propertyDefinition, ClassDefinition $classDefinition, array $propertyData, array $classList): void
27
    {
28 1
        $types = $propertyDefinition->getTypes();
29 1
        foreach ($types as $pos => $type) {
30 1
            if (!\in_array($type, $classList, true)) {
31 1
                continue;
32
            }
33
34 1
            $classType = $this->classMetadataHelper->generateClassname($type);
35 1
            $classDefinition->addUseStatement($classType);
36 1
            $types[$pos] = $classType;
37
        }
38
39 1
        $propertyDefinition->setTypes(array_unique($types));
40
    }
41
}
42