Completed
Push — master ( 69e2c3...3de1cd )
by JHONATAN
02:37
created

MetadataFactoryFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
dl 0
loc 29
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A createAnnotationMetadataDriver() 0 10 1
A createYmlMetadataFactory() 0 3 1
A createYmlMetadataDriver() 0 3 1
A createAnnotationMetadataFactory() 0 5 1
1
<?php
2
3
namespace Vox\Metadata\Factory;
4
5
use Doctrine\Common\Annotations\AnnotationReader;
6
use Doctrine\Common\Annotations\Reader;
7
use Metadata\Driver\DriverInterface;
8
use Metadata\MetadataFactory;
9
use Vox\Metadata\ClassMetadata;
10
use Vox\Metadata\Driver\AnnotationDriver;
11
use Vox\Metadata\Driver\YmlDriver;
12
13
class MetadataFactoryFactory implements MetadataFactoryFactoryInterface
14
{
15 3
    public function createAnnotationMetadataFactory(
16
        string $metadataClassName = ClassMetadata::class,
17
        Reader $reader = null
18
    ) {
19 3
        return new MetadataFactory($this->createAnnotationMetadataDriver($metadataClassName, $reader));
20
    }
21
    
22 1
    public function createYmlMetadataFactory(string $metadataPath, string $metadataClassName)
23
    {
24 1
        return new MetadataFactory($this->createYmlMetadataDriver($metadataPath, $metadataClassName));
25
    }
26
    
27 3
    private function createAnnotationMetadataDriver(
28
        string $metadataClassName = ClassMetadata::class,
29
        Reader $reader = null
30
    ): DriverInterface {
31 3
        $driver = new AnnotationDriver(
32 3
            $reader ?? new AnnotationReader(),
33 3
            $metadataClassName
34
        );
35
36 3
        return $driver;
37
    }
38
    
39 1
    private function createYmlMetadataDriver(string $metadataPath, string $metadataClassName): DriverInterface
40
    {
41 1
        return new YmlDriver($metadataPath, $metadataClassName);
42
    }
43
}
44