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\Palette\Condition\Property;
14:
15: use DcGeneral\Data\ModelInterface;
16: use DcGeneral\Data\PropertyValueBag;
17: use DcGeneral\DataDefinition\ConditionInterface;
18:
19: /**
20: * A condition define when a property is visible or editable and when not.
21: */
22: interface PropertyConditionInterface extends ConditionInterface
23: {
24: /**
25: * Check if the condition match.
26: *
27: * @param ModelInterface|null $model If given, subpalettes will be evaluated depending on the model.
28: * If no model is given, all properties will be returned, including subpalette
29: * properties.
30: *
31: * @param PropertyValueBag $input If given, subpalettes will be evaluated depending on the input data.
32: * If no model and no input data is given, all properties will be returned,
33: * including subpalette properties.
34: *
35: * @return bool
36: */
37: public function match(ModelInterface $model = null, PropertyValueBag $input = null);
38:
39: /**
40: * Create a deep clone of the condition.
41: *
42: * @return void
43: */
44: public function __clone();
45: }
46: