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\DataDefinition\ModelRelationship;
14:
15: use DcGeneral\Data\ModelInterface;
16:
17: /**
18: * This interface holds the information about the characteristics of a root model.
19: *
20: * @package DcGeneral\DataDefinition\ModelRelationship
21: */
22: interface RootConditionInterface
23: {
24: /**
25: * Set the condition as filter.
26: *
27: * @param array $value The filter rules to be used for finding root models.
28: *
29: * @return RootConditionInterface
30: */
31: public function setFilterArray($value);
32:
33: /**
34: * Get the condition as filter.
35: *
36: * @return array
37: */
38: public function getFilterArray();
39:
40: /**
41: * Set the condition setters.
42: *
43: * @param array $value The values to be used when making a model a root model.
44: *
45: * @return RootConditionInterface
46: */
47: public function setSetters($value);
48:
49: /**
50: * Get the condition setters.
51: *
52: * @return array
53: */
54: public function getSetters();
55:
56: /**
57: * Set the name of the source provider.
58: *
59: * @param string $value The data provider name.
60: *
61: * @return RootConditionInterface
62: */
63: public function setSourceName($value);
64:
65: /**
66: * Return the name of the source provider.
67: *
68: * @return string
69: */
70: public function getSourceName();
71:
72: /**
73: * Apply the root condition to a model.
74: *
75: * @param ModelInterface $objModel The model that shall become a root model.
76: *
77: * @return RootConditionInterface
78: */
79: public function applyTo($objModel);
80:
81: /**
82: * Test if the given model is indeed a root object according to this condition.
83: *
84: * @param ModelInterface $objModel The model to be tested.
85: *
86: * @return bool
87: */
88: public function matches($objModel);
89: }
90: