1: <?php
2: /**
3: * PHP version 5
4: * @package generalDriver
5: * @author Christian Schiffler <c.schiffler@cyberspectrum.de>
6: * @author Stefan Heimes <stefan_heimes@hotmail.com>
7: * @author Tristan Lins <tristan.lins@bit3.de>
8: * @copyright The MetaModels team.
9: * @license LGPL.
10: * @filesource
11: */
12:
13: namespace DcGeneral;
14:
15: use DcGeneral\DataDefinition\ContainerInterface;
16:
17: /**
18: * This implementation describes a data definition container.
19: *
20: * A data definition container is the top level container where all data definitions get stored.
21: *
22: * @package DcGeneral
23: */
24: interface DataDefinitionContainerInterface
25: {
26: /**
27: * Add or override a definition in the container.
28: *
29: * @param string $name Name of the definition.
30: *
31: * @param ContainerInterface $definition The definition to store.
32: *
33: * @return DataDefinitionContainerInterface
34: */
35: public function setDefinition($name, $definition);
36:
37: /**
38: * Check if a definition is contained in the container.
39: *
40: * @param string $name The name of the definition to retrieve.
41: *
42: * @return bool
43: */
44: public function hasDefinition($name);
45:
46: /**
47: * Retrieve a definition from the container (if it exists).
48: *
49: * If the definition does not exist, an exception is thrown.
50: *
51: * @param string $name The name of the definition to retrieve.
52: *
53: * @return ContainerInterface
54: */
55: public function getDefinition($name);
56: }
57: