composer package updates
[openemr.git] / vendor / symfony / config / Definition / Builder / NormalizationBuilder.php
blob35e30487a60ebd21106ecb15c04ade3aa5ff700d
1 <?php
3 /*
4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Config\Definition\Builder;
14 /**
15 * This class builds normalization conditions.
17 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
19 class NormalizationBuilder
21 protected $node;
22 public $before = array();
23 public $remappings = array();
25 public function __construct(NodeDefinition $node)
27 $this->node = $node;
30 /**
31 * Registers a key to remap to its plural form.
33 * @param string $key The key to remap
34 * @param string $plural The plural of the key in case of irregular plural
36 * @return $this
38 public function remap($key, $plural = null)
40 $this->remappings[] = array($key, null === $plural ? $key.'s' : $plural);
42 return $this;
45 /**
46 * Registers a closure to run before the normalization or an expression builder to build it if null is provided.
48 * @return ExprBuilder|$this
50 public function before(\Closure $closure = null)
52 if (null !== $closure) {
53 $this->before[] = $closure;
55 return $this;
58 return $this->before[] = new ExprBuilder($this->node);