ArrayTargetResolverStep   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 36
ccs 14
cts 14
cp 1
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A describe() 0 4 1
A __construct() 0 3 1
A execute() 0 5 1
A configureOptionResolver() 0 5 1
1
<?php
2
3
namespace Darkilliant\ImportBundle\Step;
4
5
use Symfony\Component\OptionsResolver\OptionsResolver;
6
use Darkilliant\ImportBundle\TargetResolver\ArrayTargetResolver;
7
use Darkilliant\ProcessBundle\State\ProcessState;
8
use Darkilliant\ProcessBundle\Step\AbstractConfigurableStep;
9
10
class ArrayTargetResolverStep extends AbstractConfigurableStep
11
{
12
    /** @var ArrayTargetResolver */
13
    private $resolver;
14
15 3
    public function __construct(ArrayTargetResolver $resolver)
16
    {
17 3
        $this->resolver = $resolver;
18 3
    }
19
20
    /**
21
     * @param ProcessState $state
22
     *
23
     * @throws \Exception
24
     *
25
     * @return array
26
     */
27 1
    public function execute(ProcessState $state)
28
    {
29 1
        $data = $this->resolver->resolve($state->getData(), $state->getOptions()['resolve_mapping']);
30
31 1
        $state->setData($data);
32 1
    }
33
34 1
    public function describe(ProcessState $state)
35
    {
36 1
        $state->info('replace keys ({resolve}) by entity doctrine', [
37 1
            'resolve' => implode(', ', array_keys($state->getOptions()['resolve_mapping'] ?? [])),
38
        ]);
39 1
    }
40
41 1
    public function configureOptionResolver(OptionsResolver $resolver): OptionsResolver
42
    {
43 1
        $resolver->setRequired(['resolve_mapping']);
44
45 1
        return parent::configureOptionResolver($resolver);
46
    }
47
}
48