Version 1
[yaffs-website] / vendor / symfony / config / Definition / Builder / MergeBuilder.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Config\Definition\Builder;
13
14 /**
15  * This class builds merge conditions.
16  *
17  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
18  */
19 class MergeBuilder
20 {
21     protected $node;
22     public $allowFalse = false;
23     public $allowOverwrite = true;
24
25     /**
26      * Constructor.
27      *
28      * @param NodeDefinition $node The related node
29      */
30     public function __construct(NodeDefinition $node)
31     {
32         $this->node = $node;
33     }
34
35     /**
36      * Sets whether the node can be unset.
37      *
38      * @param bool $allow
39      *
40      * @return $this
41      */
42     public function allowUnset($allow = true)
43     {
44         $this->allowFalse = $allow;
45
46         return $this;
47     }
48
49     /**
50      * Sets whether the node can be overwritten.
51      *
52      * @param bool $deny Whether the overwriting is forbidden or not
53      *
54      * @return $this
55      */
56     public function denyOverwrite($deny = true)
57     {
58         $this->allowOverwrite = !$deny;
59
60         return $this;
61     }
62
63     /**
64      * Returns the related node.
65      *
66      * @return NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition
67      */
68     public function end()
69     {
70         return $this->node;
71     }
72 }