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;
15 * This class builds normalization conditions.
17 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
19 class NormalizationBuilder
22 public $before = array();
23 public $remappings = array();
28 * @param NodeDefinition $node The related node
30 public function __construct(NodeDefinition $node)
36 * Registers a key to remap to its plural form.
38 * @param string $key The key to remap
39 * @param string $plural The plural of the key in case of irregular plural
43 public function remap($key, $plural = null)
45 $this->remappings[] = array($key, null === $plural ? $key.'s' : $plural);
51 * Registers a closure to run before the normalization or an expression builder to build it if null is provided.
53 * @param \Closure $closure
55 * @return ExprBuilder|$this
57 public function before(\Closure $closure = null)
59 if (null !== $closure) {
60 $this->before[] = $closure;
65 return $this->before[] = new ExprBuilder($this->node);