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\Definition\Properties;
14:
15: /**
16: * Interface PropertyInterface.
17: *
18: * This interface describes a property information.
19: *
20: * @package DcGeneral\DataDefinition\Definition\Properties
21: */
22: interface PropertyInterface
23: {
24: /**
25: * Return the name of the property.
26: *
27: * @return string
28: */
29: public function getName();
30:
31: /**
32: * Set the label language key.
33: *
34: * @param string $value The label value.
35: *
36: * @return PropertyInterface
37: */
38: public function setLabel($value);
39:
40: /**
41: * Return the label of the property.
42: *
43: * @return string
44: */
45: public function getLabel();
46:
47: /**
48: * Set the description language key.
49: *
50: * @param string $value The description text.
51: *
52: * @return PropertyInterface
53: */
54: public function setDescription($value);
55:
56: /**
57: * Return the description of the property.
58: *
59: * @return string
60: */
61: public function getDescription();
62:
63: /**
64: * Set the default value of the property.
65: *
66: * @param mixed $value The default value.
67: *
68: * @return PropertyInterface
69: */
70: public function setDefaultValue($value);
71:
72: /**
73: * Return the default value of the property.
74: *
75: * @return mixed
76: */
77: public function getDefaultValue();
78:
79: /**
80: * Set if the property is excluded from access.
81: *
82: * @param bool $value The flag.
83: *
84: * @return PropertyInterface
85: */
86: public function setExcluded($value);
87:
88: /**
89: * Determinator if this property is excluded from access.
90: *
91: * @return bool
92: */
93: public function isExcluded();
94:
95: /**
96: * Set the search determinator.
97: *
98: * @param bool $value The flag.
99: *
100: * @return PropertyInterface
101: */
102: public function setSearchable($value);
103:
104: /**
105: * Determinator if search is enabled on this property.
106: *
107: * @return bool
108: */
109: public function isSearchable();
110:
111: /**
112: * Set the sorting determinator.
113: *
114: * @param bool $value The flag.
115: *
116: * @return PropertyInterface
117: */
118: public function setSortable($value);
119:
120: /**
121: * Determinator if sorting may be performed on this property.
122: *
123: * @return bool
124: */
125: public function isSortable();
126:
127: /**
128: * Set filtering determinator.
129: *
130: * @param bool $value The flag.
131: *
132: * @return PropertyInterface
133: */
134: public function setFilterable($value);
135:
136: /**
137: * Determinator if filtering may be performed on this property.
138: *
139: * @return bool
140: */
141: public function isFilterable();
142:
143: /**
144: * Set the grouping mode.
145: *
146: * See ListingConfigInterface::GROUP_* flags.
147: *
148: * @param string $value The grouping mode to apply.
149: *
150: * @return PropertyInterface
151: */
152: public function setGroupingMode($value);
153:
154: /**
155: * Return the grouping mode.
156: *
157: * @return string
158: */
159: public function getGroupingMode();
160:
161: /**
162: * Set the grouping length is used for char or digit grouping.
163: *
164: * This defines how many chars or digits should be respected when grouping.
165: *
166: * @param int $value The prefix length.
167: *
168: * @return PropertyInterface
169: */
170: public function setGroupingLength($value);
171:
172: /**
173: * Get the grouping length is used for char or digit grouping.
174: *
175: * The grouping length is used for char or digit grouping and define how many chars or digits should be respected
176: * when grouping.
177: *
178: * @return int
179: */
180: public function getGroupingLength();
181:
182: /**
183: * Set the the list sorting mode.
184: *
185: * See ListingConfigInterface::SORT_* flags.
186: *
187: * @param string $value The sorting mode to apply.
188: *
189: * @return PropertyInterface
190: */
191: public function setSortingMode($value);
192:
193: /**
194: * Return the list sorting mode.
195: *
196: * This sorting is applied after grouping and could also be called "in-group sorting".
197: *
198: * See ListingConfigInterface::SORT_* flags.
199: *
200: * @return string
201: */
202: public function getSortingMode();
203:
204: /**
205: * Set the widget type name.
206: *
207: * @param string $value The type name of the widget.
208: *
209: * @return PropertyInterface
210: *
211: * @todo this is view related, should be moved there?
212: */
213: public function setWidgetType($value);
214:
215: /**
216: * Return the widget type name.
217: *
218: * @return string
219: *
220: * @todo this is view related, should be moved there?
221: */
222: public function getWidgetType();
223:
224: /**
225: * Set the valid values of this property.
226: *
227: * @param array $value The options.
228: *
229: * @return PropertyInterface
230: */
231: public function setOptions($value);
232:
233: /**
234: * Return the valid values of this property.
235: *
236: * @return array|null
237: */
238: public function getOptions();
239:
240: /**
241: * Set the explanation language string.
242: *
243: * @param string $value The explanation text.
244: *
245: * @return PropertyInterface
246: */
247: public function setExplanation($value);
248:
249: /**
250: * Return the explanation of the property.
251: *
252: * @return string
253: */
254: public function getExplanation();
255:
256: /**
257: * Set the extra data of the property.
258: *
259: * @param array $value The extra data for this property.
260: *
261: * @return PropertyInterface
262: */
263: public function setExtra($value);
264:
265: /**
266: * Fetch the extra data of the property.
267: *
268: * @return array
269: */
270: public function getExtra();
271: }
272: