Passed
Pull Request — master (#11)
by Pavel
08:05
created

Configuration   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 97.44%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 0
cbo 3
dl 0
loc 45
ccs 38
cts 39
cp 0.9744
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A configureJms() 0 16 1
A getConfigTreeBuilder() 0 21 1
1
<?php
2
3
namespace Bankiru\Api\JsonRpc\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
6
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7
use Symfony\Component\Config\Definition\ConfigurationInterface;
8
9
final class Configuration implements ConfigurationInterface
10
{
11
    /** {@inheritdoc} */
12 1
    public function getConfigTreeBuilder()
13
    {
14 1
        $builder = new TreeBuilder();
15 1
        $root    = $builder->root('jsonrpc_server');
16
17
        $viewListener = $root
18 2
            ->children()
19 1
            ->arrayNode('view_listener')
20 2
            ->canBeDisabled();
21 1
22
        $viewListener
23 2
            ->children()
24 1
            ->scalarNode('normalizer')
25 2
            ->info('View listener normalizer service ID')
26 1
            ->defaultValue('jsonrpc_server.builtin_adapter.normalizer');
27 1
28 1
        $adapters = $root->children()->arrayNode('adapters')->addDefaultsIfNotSet();
29 1
        $this->configureJms($adapters);
30 2
31 1
        return $builder;
32 2
    }
33 2
34 1
    /**
35 1
     * @param ArrayNodeDefinition $adapters
36 2
     */
37 4
    private function configureJms(ArrayNodeDefinition $adapters)
38 3
    {
39 4
        $jms = $adapters->children()->arrayNode('jms');
40 4
41 6
        $jms->canBeEnabled();
42 2
43 3
        $jms->children()
44 4
            ->arrayNode('relation_handlers')
45 4
            ->fixXmlConfig('relation_handler')
46 5
            ->useAttributeAsKey('handler')
47 3
            ->prototype('scalar')
48 6
            ->info(
49 4
                'Key: Relation handler name (i.e. "Relation"), Value: service ID for relation handler entity manager'
50 5
            )
51 5
            ->isRequired();
52 4
    }
53
}
54