Version 1
[yaffs-website] / vendor / symfony / config / Definition / Builder / ValidationBuilder.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 validation conditions.
16  *
17  * @author Christophe Coevoet <stof@notk.org>
18  */
19 class ValidationBuilder
20 {
21     protected $node;
22     public $rules = array();
23
24     /**
25      * Constructor.
26      *
27      * @param NodeDefinition $node The related node
28      */
29     public function __construct(NodeDefinition $node)
30     {
31         $this->node = $node;
32     }
33
34     /**
35      * Registers a closure to run as normalization or an expression builder to build it if null is provided.
36      *
37      * @param \Closure $closure
38      *
39      * @return ExprBuilder|$this
40      */
41     public function rule(\Closure $closure = null)
42     {
43         if (null !== $closure) {
44             $this->rules[] = $closure;
45
46             return $this;
47         }
48
49         return $this->rules[] = new ExprBuilder($this->node);
50     }
51 }