AnyDataProvider::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace Xervice\DataProvider\Business\Model\DataProvider;
5
6
7
class AnyDataProvider implements DataProviderInterface
8
{
9
    /**
10
     * @var string
11
     */
12
    private $className;
13
14
    /**
15
     * @var \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface
16
     */
17
    private $dataProvider;
18
19
    /**
20
     * AnyDataProvider constructor.
21
     *
22
     * @param \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface $dataProvider
23
     */
24 1
    public function __construct(\Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface $dataProvider = null)
25
    {
26 1
        if ($dataProvider) {
27 1
            $this->className = \get_class($dataProvider);
28 1
            $this->dataProvider = $dataProvider;
29
        }
30 1
    }
31
32
    /**
33
     * @return string
34
     */
35
    public function getClassName(): string
36
    {
37
        return $this->className;
38
    }
39
40
    /**
41
     * @param string $className
42
     */
43
    public function setClassName(string $className): void
44
    {
45
        $this->className = $className;
46
    }
47
48
    /**
49
     * @return \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface
50
     */
51 1
    public function getDataProvider(): ?\Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface
52
    {
53 1
        return $this->dataProvider;
54
    }
55
56
    /**
57
     * @param \Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface $dataProvider
58
     */
59
    public function setDataProvider(\Xervice\DataProvider\Business\Model\DataProvider\DataProviderInterface $dataProvider): void
60
    {
61
        $this->dataProvider = $dataProvider;
62
    }
63
64
    /**
65
     * @return array
66
     */
67 1
    public function toArray(): array
68
    {
69
        return [
70 1
            'class' => $this->className,
71 1
            'dataprovider' => $this->dataProvider ? $this->dataProvider->toArray() : []
72
        ];
73
    }
74
75
    /**
76
     * @param array $data
77
     */
78 1
    public function fromArray(array $data): void
79
    {
80 1
        if (isset($data['class']) && isset($data['dataprovider'])) {
81 1
            $this->className = $data['class'];
82 1
            $this->dataProvider = new $this->className();
83 1
            $this->dataProvider->fromArray($data['dataprovider']);
84
        }
85 1
    }
86
87
88
}