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

Configuration::configureJms()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 16
ccs 16
cts 16
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 11
nc 1
nop 1
crap 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