1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11:
12: namespace Symfony\Component\Config\Definition\Builder;
13:
14: use Symfony\Component\Config\Definition\VariableNode;
15:
16: 17: 18: 19: 20:
21: class VariableNodeDefinition extends NodeDefinition
22: {
23: 24: 25: 26: 27:
28: protected function instantiateNode()
29: {
30: return new VariableNode($this->name, $this->parent);
31: }
32:
33: 34: 35:
36: protected function createNode()
37: {
38: $node = $this->instantiateNode();
39:
40: if (null !== $this->normalization) {
41: $node->setNormalizationClosures($this->normalization->before);
42: }
43:
44: if (null !== $this->merge) {
45: $node->setAllowOverwrite($this->merge->allowOverwrite);
46: }
47:
48: if (true === $this->default) {
49: $node->setDefaultValue($this->defaultValue);
50: }
51:
52: if (false === $this->allowEmptyValue) {
53: $node->setAllowEmptyValue($this->allowEmptyValue);
54: }
55:
56: $node->addEquivalentValue(null, $this->nullEquivalent);
57: $node->addEquivalentValue(true, $this->trueEquivalent);
58: $node->addEquivalentValue(false, $this->falseEquivalent);
59: $node->setRequired($this->required);
60:
61: if (null !== $this->validation) {
62: $node->setFinalValidationClosures($this->validation->rules);
63: }
64:
65: return $node;
66: }
67:
68: }
69: