105e2d64709b11342c113f732bb0ab6655e2ec16
[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     public function __construct(NodeDefinition $node)
26     {
27         $this->node = $node;
28     }
29
30     /**
31      * Sets whether the node can be unset.
32      *
33      * @param bool $allow
34      *
35      * @return $this
36      */
37     public function allowUnset($allow = true)
38     {
39         $this->allowFalse = $allow;
40
41         return $this;
42     }
43
44     /**
45      * Sets whether the node can be overwritten.
46      *
47      * @param bool $deny Whether the overwriting is forbidden or not
48      *
49      * @return $this
50      */
51     public function denyOverwrite($deny = true)
52     {
53         $this->allowOverwrite = !$deny;
54
55         return $this;
56     }
57
58     /**
59      * Returns the related node.
60      *
61      * @return NodeDefinition|ArrayNodeDefinition|VariableNodeDefinition
62      */
63     public function end()
64     {
65         return $this->node;
66     }
67 }