1bf2ad4bf6d9699f9a75dbc9271ead33745f3c78
[yaffs-website] / vendor / symfony / config / Definition / Builder / ParentNodeDefinitionInterface.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  * An interface that must be implemented by nodes which can have children.
16  *
17  * @author Victor Berchet <victor@suumit.com>
18  */
19 interface ParentNodeDefinitionInterface
20 {
21     /**
22      * Returns a builder to add children nodes.
23      *
24      * @return NodeBuilder
25      */
26     public function children();
27
28     /**
29      * Appends a node definition.
30      *
31      * Usage:
32      *
33      *     $node = $parentNode
34      *         ->children()
35      *             ->scalarNode('foo')->end()
36      *             ->scalarNode('baz')->end()
37      *             ->append($this->getBarNodeDefinition())
38      *         ->end()
39      *     ;
40      *
41      * @return $this
42      */
43     public function append(NodeDefinition $node);
44
45     /**
46      * Sets a custom children builder.
47      */
48     public function setBuilder(NodeBuilder $builder);
49 }