Completed
Push — master ( 6dc464...8b1d35 )
by Mike
03:37
created

DataProviderBusinessFactory::createCleaner()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
5
namespace Xervice\DataProvider\Business;
6
7
8
use Xervice\Core\Business\Model\Factory\AbstractBusinessFactory;
9
use Xervice\DataProvider\Business\Model\Cleaner\Cleaner;
10
use Xervice\DataProvider\Business\Model\Cleaner\CleanerInterface;
11
use Xervice\DataProvider\Business\Model\Finder\DataProviderFinder;
12
use Xervice\DataProvider\Business\Model\Finder\DataProviderFinderInterface;
13
use Xervice\DataProvider\Business\Model\Generator\DataProviderGenerator;
14
use Xervice\DataProvider\Business\Model\Generator\DataProviderGeneratorInterface;
15
use Xervice\DataProvider\Business\Model\Generator\FileWriter;
16
use Xervice\DataProvider\Business\Model\Generator\FileWriterInterface;
17
use Xervice\DataProvider\Business\Model\Parser\DataProviderParser;
18
use Xervice\DataProvider\Business\Model\Parser\DataProviderParserInterface;
19
use Xervice\DataProvider\Business\Model\Parser\XmlMerger;
20
use Xervice\DataProvider\Business\Model\Parser\XmlMergerInterface;
21
22
/**
23
 * @method \Xervice\DataProvider\DataProviderConfig getConfig()
24
 */
25
class DataProviderBusinessFactory extends AbstractBusinessFactory
26
{
27
    /**
28
     * @return \Xervice\DataProvider\Business\Model\Generator\DataProviderGenerator
29
     */
30 5
    public function createDataProviderGenerator(): DataProviderGeneratorInterface
31
    {
32 5
        return new DataProviderGenerator(
33 5
            $this->createDataProviderParser(),
34 5
            $this->createFileWriter(),
35 5
            $this->getConfig()->getDataProviderNamespace(),
36 5
            $this->getConfig()->getDataProviderExtends()
37
        );
38
    }
39
40
    /**
41
     * @return \Xervice\DataProvider\Business\Model\Cleaner\Cleaner
42
     */
43 1
    public function createCleaner(): CleanerInterface
44
    {
45 1
        return new Cleaner(
46 1
            $this->createDataProviderFinder()
47
        );
48
    }
49
50
    /**
51
     * @return \Xervice\DataProvider\Business\Model\Parser\DataProviderParser
52
     */
53 5
    public function createDataProviderParser(): DataProviderParserInterface
54
    {
55 5
        return new DataProviderParser(
56 5
            $this->createDataProviderFinder(),
57 5
            $this->createXmlMerger()
58
        );
59
    }
60
61
    /**
62
     * @return \Xervice\DataProvider\Business\Model\Finder\DataProviderFinder
63
     */
64 5
    public function createDataProviderFinder(): DataProviderFinderInterface
65
    {
66 5
        return new DataProviderFinder(
67 5
            $this->getConfig()->getPaths(),
68 5
            $this->getConfig()->getGeneratedPath(),
69 5
            $this->getConfig()->getFilePattern()
70
        );
71
    }
72
73
    /**
74
     * @return \Xervice\DataProvider\Business\Model\Parser\XmlMerger
75
     */
76 5
    public function createXmlMerger(): XmlMergerInterface
77
    {
78 5
        return new XmlMerger();
79
    }
80
81
    /**
82
     * @return \Xervice\DataProvider\Business\Model\Generator\FileWriter
83
     */
84 5
    public function createFileWriter(): FileWriterInterface
85
    {
86 5
        return new FileWriter(
87 5
            $this->getConfig()->getGeneratedPath()
88
        );
89
    }
90
}