vendor/symfony/src/Symfony/Component/Config/Definition/Builder/VariableNodeDefinition.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 use Symfony\Component\Config\Definition\NodeInterface;
       
    15 use Symfony\Component\Config\Definition\VariableNode;
       
    16 
       
    17 /**
       
    18  * This class provides a fluent interface for defining a node.
       
    19  *
       
    20  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
       
    21  */
       
    22 class VariableNodeDefinition extends NodeDefinition
       
    23 {
       
    24     /**
       
    25      * Instantiate a Node
       
    26      *
       
    27      * @return VariableNode The node
       
    28      */
       
    29     protected function instantiateNode()
       
    30     {
       
    31         return new VariableNode($this->name, $this->parent);
       
    32     }
       
    33 
       
    34     /**
       
    35      * {@inheritDoc}
       
    36      */
       
    37     protected function createNode()
       
    38     {
       
    39         $node = $this->instantiateNode();
       
    40 
       
    41         if (null !== $this->normalization) {
       
    42             $node->setNormalizationClosures($this->normalization->before);
       
    43         }
       
    44 
       
    45         if (null !== $this->merge) {
       
    46             $node->setAllowOverwrite($this->merge->allowOverwrite);
       
    47         }
       
    48 
       
    49         if (true === $this->default) {
       
    50             $node->setDefaultValue($this->defaultValue);
       
    51         }
       
    52 
       
    53         if (false === $this->allowEmptyValue) {
       
    54             $node->setAllowEmptyValue($this->allowEmptyValue);
       
    55         }
       
    56 
       
    57         $node->addEquivalentValue(null, $this->nullEquivalent);
       
    58         $node->addEquivalentValue(true, $this->trueEquivalent);
       
    59         $node->addEquivalentValue(false, $this->falseEquivalent);
       
    60         $node->setRequired($this->required);
       
    61 
       
    62         if (null !== $this->validation) {
       
    63             $node->setFinalValidationClosures($this->validation->rules);
       
    64         }
       
    65 
       
    66         return $node;
       
    67     }
       
    68 
       
    69 }