Passed
Push — master ( e8c812...d43699 )
by Asmir
06:04 queued 03:41
created

NullDriver   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 35
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
wmc 8

2 Methods

Rating   Name   Duplication   Size   Complexity  
B loadMetadataForClass() 0 23 7
A __construct() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace JMS\Serializer\Metadata\Driver;
6
7
use JMS\Serializer\Metadata\ClassMetadata;
8
use JMS\Serializer\Metadata\PropertyMetadata;
9
use JMS\Serializer\Naming\PropertyNamingStrategyInterface;
10
use Metadata\ClassMetadata as BaseClassMetadata;
11
use Metadata\Driver\DriverInterface;
12 1
13
class NullDriver implements DriverInterface
14 1
{
15 1
    /**
16
     * @var PropertyNamingStrategyInterface
17 1
     */
18
    private $namingStrategy;
19
20
    public function __construct(PropertyNamingStrategyInterface $namingStrategy)
21
    {
22
        $this->namingStrategy = $namingStrategy;
23
    }
24
25
    public function loadMetadataForClass(\ReflectionClass $class): ?BaseClassMetadata
26
    {
27
        $classMetadata = new ClassMetadata($name = $class->name);
28
        $fileResource =  $class->getFilename();
29
        if (false !== $fileResource) {
30
            $classMetadata->fileResources[] = $fileResource;
31
        }
32
33
        foreach ($class->getProperties() as $property) {
34
            if ($property->class !== $name || (isset($property->info) && $property->info['class'] !== $name)) {
35
                continue;
36
            }
37
38
            $propertyMetadata = new PropertyMetadata($name, $property->getName());
39
40
            if (!$propertyMetadata->serializedName) {
41
                $propertyMetadata->serializedName = $this->namingStrategy->translateName($propertyMetadata);
42
            }
43
44
            $classMetadata->addPropertyMetadata($propertyMetadata);
45
        }
46
47
        return $classMetadata;
48
    }
49
}
50