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
12namespace Symfony\Component\Config\Definition\Builder;
13
14/**
15 * This class builds validation conditions.
16 *
17 * @author Christophe Coevoet <stof@notk.org>
18 */
19class ValidationBuilder
20{
21    protected $node;
22    public $rules = [];
23
24    public function __construct(NodeDefinition $node)
25    {
26        $this->node = $node;
27    }
28
29    /**
30     * Registers a closure to run as normalization or an expression builder to build it if null is provided.
31     *
32     * @return ExprBuilder|$this
33     */
34    public function rule(\Closure $closure = null)
35    {
36        if (null !== $closure) {
37            $this->rules[] = $closure;
38
39            return $this;
40        }
41
42        return $this->rules[] = new ExprBuilder($this->node);
43    }
44}
45