vendor/symfony/src/Symfony/Component/Config/Definition/Builder/MergeBuilder.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     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;
       
    23     public $allowOverwrite;
       
    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         $this->allowFalse = false;
       
    34         $this->allowOverwrite = true;
       
    35     }
       
    36 
       
    37     /**
       
    38      * Sets whether the node can be unset.
       
    39      *
       
    40      * @param Boolean $allow
       
    41      * @return MergeBuilder
       
    42      */
       
    43     public function allowUnset($allow = true)
       
    44     {
       
    45         $this->allowFalse = $allow;
       
    46 
       
    47         return $this;
       
    48     }
       
    49 
       
    50     /**
       
    51      * Sets whether the node can be overwritten.
       
    52      *
       
    53      * @param Boolean $deny Whether the overwriting is forbidden or not
       
    54      *
       
    55      * @return MergeBuilder
       
    56      */
       
    57     public function denyOverwrite($deny = true)
       
    58     {
       
    59         $this->allowOverwrite = !$deny;
       
    60 
       
    61         return $this;
       
    62     }
       
    63 
       
    64     /**
       
    65      * Returns the related node.
       
    66      *
       
    67      * @return NodeDefinition
       
    68      */
       
    69     public function end()
       
    70     {
       
    71         return $this->node;
       
    72     }
       
    73 }