DataTranslator   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 41
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A translate() 0 11 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Xervice\Processor\Business\Model\Translator;
5
6
7
use Xervice\ArrayHandler\Business\ArrayHandlerFacade;
8
use Xervice\ArrayHandler\Dependency\FieldHandlerPluginInterface;
9
10
class DataTranslator implements DataTranslatorInterface
11
{
12
    /**
13
     * @var \Xervice\ArrayHandler\Business\ArrayHandlerFacade
14
     */
15
    private $arrayHandlerFacade;
16
17
    /**
18
     * @var \Xervice\ArrayHandler\Dependency\FieldHandlerPluginInterface
19
     */
20
    private $translateFieldHandler;
21
22
    /**
23
     * DataTranslator constructor.
24
     *
25
     * @param \Xervice\ArrayHandler\Business\ArrayHandlerFacade $arrayHandlerFacade
26
     * @param \Xervice\ArrayHandler\Dependency\FieldHandlerPluginInterface $translateFieldHandler
27
     */
28 3
    public function __construct(ArrayHandlerFacade $arrayHandlerFacade, FieldHandlerPluginInterface $translateFieldHandler)
29
    {
30 3
        $this->arrayHandlerFacade = $arrayHandlerFacade;
31 3
        $this->translateFieldHandler = $translateFieldHandler;
32 3
    }
33
34
    /**
35
     * @param array $data
36
     * @param \Xervice\Processor\Business\Dependency\ProcessTranslationPluginInterface[] $translatorConfigPlugins
37
     *
38
     * @return array
39
     */
40 1
    public function translate(array $data, array $translatorConfigPlugins): array
41
    {
42 1
        foreach ($translatorConfigPlugins as $translatorConfigPlugin) {
43 1
            $data = $this->arrayHandlerFacade->handleArray(
44 1
                $this->translateFieldHandler,
45 1
                $data,
46 1
                $translatorConfigPlugin->getTranslationConfiguration()
47
            );
48
        }
49
50 1
        return $data;
51
    }
52
}