35e30487a60ebd21106ecb15c04ade3aa5ff700d
[yaffs-website] / vendor / symfony / config / Definition / Builder / NormalizationBuilder.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 normalization conditions.
16  *
17  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
18  */
19 class NormalizationBuilder
20 {
21     protected $node;
22     public $before = array();
23     public $remappings = array();
24
25     public function __construct(NodeDefinition $node)
26     {
27         $this->node = $node;
28     }
29
30     /**
31      * Registers a key to remap to its plural form.
32      *
33      * @param string $key    The key to remap
34      * @param string $plural The plural of the key in case of irregular plural
35      *
36      * @return $this
37      */
38     public function remap($key, $plural = null)
39     {
40         $this->remappings[] = array($key, null === $plural ? $key.'s' : $plural);
41
42         return $this;
43     }
44
45     /**
46      * Registers a closure to run before the normalization or an expression builder to build it if null is provided.
47      *
48      * @return ExprBuilder|$this
49      */
50     public function before(\Closure $closure = null)
51     {
52         if (null !== $closure) {
53             $this->before[] = $closure;
54
55             return $this;
56         }
57
58         return $this->before[] = new ExprBuilder($this->node);
59     }
60 }