PersistenceLocatorProxy   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
eloc 14
dl 0
loc 42
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A reader() 0 10 3
A writer() 0 10 3
1
<?php
2
declare(strict_types=1);
3
4
namespace Xervice\Core\Business\Model\Locator\Proxy\Persistence;
5
6
7
use Xervice\Core\Business\Model\Facade\AbstractFacade;
8
use Xervice\Core\Business\Model\Facade\FacadeInterface;
9
use Xervice\Core\Business\Model\Factory\AbstractBusinessFactory;
10
use Xervice\Core\Business\Model\Factory\FactoryInterface;
11
use Xervice\Core\Business\Model\Locator\Proxy\AbstractLocatorProxy;
12
use Xervice\Core\Business\Model\Persistence\Reader\AbstractReader;
13
use Xervice\Core\Business\Model\Persistence\Reader\ReaderInterface;
14
use Xervice\Core\Business\Model\Persistence\Writer\AbstractWriter;
15
use Xervice\Core\Business\Model\Persistence\Writer\WriterInterface;
16
17
class PersistenceLocatorProxy extends AbstractLocatorProxy implements PersistenceLocatorProxyInterface
18
{
19
    private const DIRECTORY = 'Persistence';
20
21
    /**
22
     * @var \Xervice\Core\Business\Model\Persistence\Reader\ReaderInterface
23
     */
24
    private $reader;
25
26
    /**
27
     * @var \Xervice\Core\Business\Model\Persistence\Writer\WriterInterface
28
     */
29
    private $writer;
30
31
    /**
32
     * @return \Xervice\Core\Business\Model\Persistence\Reader\ReaderInterface
33
     */
34 3
    public function reader(): ReaderInterface
35
    {
36 3
        if ($this->reader === null) {
37 3
            $class = $this->getServiceClass('DataReader', self::DIRECTORY) ?: AbstractReader::class;
38 3
            $this->reader = new $class(
39 3
                $this->config()
40
            );
41
        }
42
43 3
        return $this->reader;
44
    }
45
46
    /**
47
     * @return \Xervice\Core\Business\Model\Persistence\Writer\WriterInterface
48
     */
49 3
    public function writer(): WriterInterface
50
    {
51 3
        if ($this->writer === null) {
52 3
            $class = $this->getServiceClass('DataWriter', self::DIRECTORY) ?: AbstractWriter::class;
53 3
            $this->writer = new $class(
54 3
                $this->config()
55
            );
56
        }
57
58 3
        return $this->writer;
59
    }
60
}