Passed
Pull Request — master (#1)
by Flavien
06:34 queued 03:23
created

Configuration::addTranformerDefinitionNode()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 12
ccs 7
cts 7
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 8
nc 1
nop 0
crap 1
1
<?php
2
3
namespace QualityCode\TransformAndLoadBundle\DependencyInjection;
4
5
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
6
use Symfony\Component\Config\Definition\ConfigurationInterface;
7
8
/**
9
 * This is the class that validates and merges configuration from your app/config files.
10
 *
11
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/configuration.html}
12
 */
13
class Configuration implements ConfigurationInterface
14
{
15
    /**
16
     * {@inheritdoc}
17
     */
18 1
    public function getConfigTreeBuilder()
19
    {
20 1
        $treeBuilder = new TreeBuilder();
21 1
        $rootNode = $treeBuilder->root('qltyc_tl');
22
23
        $rootNode
24 1
            ->children()
25 1
                ->arrayNode('imports')
26 1
                    ->useAttributeAsKey('import_name')
27 1
                    ->prototype('array')
28 1
                        ->children()
29 1
                            ->scalarNode('mode')->end()
30 1
                            ->integerNode('batch_size')->defaultValue(100)->end()
31 1
                            ->scalarNode('delimiter')->defaultValue(';')->end()
32 1
                            ->scalarNode('main_entity')->isRequired()->end()
33 1
                            ->append($this->addLinkEntitiesMappingNode())
34 1
                            ->append($this->addTranformerDefinitionNode())
35 1
                            ->append($this->addFieldsNode())
36 1
                        ->end()
37 1
                    ->end()
38 1
                ->end()
39 1
            ->end()
40
        ;
41
42 1
        return $treeBuilder;
43
    }
44
45
    /**
46
     * @return ArrayNodeDefinition|NodeDefinition
47
     */
48 1
    public function addLinkEntitiesMappingNode()
49
    {
50 1
        $builder = new TreeBuilder();
51 1
        $node = $builder->root('link_entities_mapping');
52
53
        $node
54 1
            ->useAttributeAsKey('entity_name')
55 1
            ->prototype('scalar')->end()
56 1
            ->end();
57
58 1
        return $node;
59
    }
60
61
    /**
62
     * @return ArrayNodeDefinition|NodeDefinition
63
     */
64 1
    public function addTranformerDefinitionNode()
65
    {
66 1
        $builder = new TreeBuilder();
67 1
        $node = $builder->root('transformer');
68
69
        $node
70 1
            ->useAttributeAsKey('transformer_name')
71 1
            ->prototype('scalar')->end()
72 1
            ->end();
73
74 1
        return $node;
75
    }
76
77
    /**
78
     * @return ArrayNodeDefinition|NodeDefinition
79
     */
80 1
    public function addFieldsNode()
81
    {
82 1
        $builder = new TreeBuilder();
83 1
        $node = $builder->root('fields');
84
85
        $node
86 1
            ->useAttributeAsKey('field_name')
87 1
            ->prototype('array')
88 1
                ->children()
89 1
                    ->scalarNode('class')->end()
90 1
                    ->booleanNode('link_entity')->defaultValue(false)->end()
91 1
                    ->scalarNode('mapped_with')->isRequired()->end()
92 1
                    ->scalarNode('transform')->end()
93 1
                ->end()
94 1
            ->end()
95
        ;
96
97 1
        return $node;
98
    }
99
}
100