Completed
Push — master ( abfe96...346057 )
by Carlos C
23s queued 13s
created

MultiValidatorFactory::newReceived40()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
ccs 0
cts 0
cp 0
crap 2
1
<?php
2
3
namespace CfdiUtils\Validate;
4
5
use CfdiUtils\Validate\Cfdi40\Xml\XmlDefinition;
6
use CfdiUtils\Validate\Xml\XmlFollowSchema;
7
8
class MultiValidatorFactory
9
{
10
    /** @var Discoverer */
11
    private $discoverer;
12 20
13
    public function __construct(Discoverer $discoverer = null)
14 20
    {
15 20
        $this->discoverer = $discoverer ? : new Discoverer();
16
    }
17 2
18
    public function getDiscoverer(): Discoverer
19 2
    {
20
        return $this->discoverer;
21
    }
22 18
23
    public function newCreated33(): MultiValidator
24 18
    {
25 18
        $multiValidator = new MultiValidator('3.3');
26 18
        $multiValidator->add(new XmlFollowSchema());
27 18
        $this->addDiscovered($multiValidator, __NAMESPACE__ . '\Cfdi33\Standard', __DIR__ . '/Cfdi33/Standard');
28 18
        $this->addDiscovered(
29 18
            $multiValidator,
30 18
            __NAMESPACE__ . '\Cfdi33\RecepcionPagos',
31
            __DIR__ . '/Cfdi33/RecepcionPagos'
32 18
        );
33
        return $multiValidator;
34
    }
35 14
36
    public function newReceived33(): MultiValidator
37 14
    {
38
        return $this->newCreated33();
39
    }
40 18
41
    public function newCreated40(): MultiValidator
42 18
    {
43 18
        $multiValidator = new MultiValidator('4.0');
44
        $multiValidator->add(new XmlFollowSchema());
45 18
        $multiValidator->add(new XmlDefinition());
46
        $this->addDiscovered($multiValidator, __NAMESPACE__ . '\Cfdi40\Standard', __DIR__ . '/Cfdi40/Standard');
47
        return $multiValidator;
48
    }
49
50
    public function newReceived40(): MultiValidator
51
    {
52
        return $this->newCreated40();
53
    }
54
55
    public function addDiscovered(MultiValidator $multiValidator, string $namespacePrefix, string $directory)
56
    {
57
        $multiValidator->addMulti(
58
            ...$this->discoverer->discoverInFolder($namespacePrefix, $directory)
59
        );
60
    }
61
}
62