Yaffs site version 1.1
[yaffs-website] / vendor / symfony / config / Definition / NodeInterface.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;
13
14 /**
15  * Common Interface among all nodes.
16  *
17  * In most cases, it is better to inherit from BaseNode instead of implementing
18  * this interface yourself.
19  *
20  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
21  */
22 interface NodeInterface
23 {
24     /**
25      * Returns the name of the node.
26      *
27      * @return string The name of the node
28      */
29     public function getName();
30
31     /**
32      * Returns the path of the node.
33      *
34      * @return string The node path
35      */
36     public function getPath();
37
38     /**
39      * Returns true when the node is required.
40      *
41      * @return bool If the node is required
42      */
43     public function isRequired();
44
45     /**
46      * Returns true when the node has a default value.
47      *
48      * @return bool If the node has a default value
49      */
50     public function hasDefaultValue();
51
52     /**
53      * Returns the default value of the node.
54      *
55      * @return mixed The default value
56      *
57      * @throws \RuntimeException if the node has no default value
58      */
59     public function getDefaultValue();
60
61     /**
62      * Normalizes the supplied value.
63      *
64      * @param mixed $value The value to normalize
65      *
66      * @return mixed The normalized value
67      */
68     public function normalize($value);
69
70     /**
71      * Merges two values together.
72      *
73      * @param mixed $leftSide
74      * @param mixed $rightSide
75      *
76      * @return mixed The merged values
77      */
78     public function merge($leftSide, $rightSide);
79
80     /**
81      * Finalizes a value.
82      *
83      * @param mixed $value The value to finalize
84      *
85      * @return mixed The finalized value
86      */
87     public function finalize($value);
88 }