Completed
Pull Request — master (#888)
by Robert
03:06
created

DefaultDriverFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 44.44%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 5
dl 0
loc 22
ccs 4
cts 9
cp 0.4444
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A createDriver() 0 19 2
1
<?php
2
3
namespace JMS\Serializer\Builder;
4
5
use Doctrine\Common\Annotations\Reader;
6
use JMS\Serializer\Metadata\Driver\AnnotationDriver;
7
use JMS\Serializer\Metadata\Driver\XmlDriver;
8
use JMS\Serializer\Metadata\Driver\YamlDriver;
9
use JMS\Serializer\Metadata\ClassMetadataUpdaterInterface;
10
use Metadata\Driver\DriverChain;
11
use Metadata\Driver\FileLocator;
12
13
class DefaultDriverFactory implements DriverFactoryInterface
14
{
15 30
    public function createDriver(
16
        array $metadataDirs,
17
        Reader $annotationReader,
18
        ClassMetadataUpdaterInterface $propertyUpdater = null
19
    )
20
    {
21 30
        $annotationDriver = new AnnotationDriver($annotationReader, $propertyUpdater);
22 30
        if (empty($metadataDirs)) {
23 30
            return $annotationDriver;
24
        }
25
26
        $fileLocator = new FileLocator($metadataDirs);
27
28
        return new DriverChain(array(
29
            new YamlDriver($fileLocator, $propertyUpdater),
30
            new XmlDriver($fileLocator, $propertyUpdater),
31
            $annotationDriver,
32
        ));
33
    }
34
}
35