]> git.mxchange.org Git - core.git/blob - framework/main/interfaces/criteria/class_Criteria.php
Some updates:
[core.git] / framework / main / interfaces / criteria / class_Criteria.php
1 <?php
2 // Own namespace
3 namespace Org\Mxchange\CoreFramework\Criteria;
4
5 // Import framework stuff
6 use Org\Mxchange\CoreFramework\Generic\FrameworkInterface;
7
8 /**
9  * An interface for criterias
10  *
11  * @author              Roland Haeder <webmaster@shipsimu.org>
12  * @version             0.0.0
13 <<<<<<< HEAD:framework/main/interfaces/criteria/class_Criteria.php
14  * @copyright   Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team
15 =======
16  * @copyright   Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2016 Core Developer Team
17 >>>>>>> Some updates::inc/main/interfaces/criteria/class_Criteria.php
18  * @license             GNU GPL 3.0 or any newer version
19  * @link                http://www.shipsimu.org
20  *
21  * This program is free software: you can redistribute it and/or modify
22  * it under the terms of the GNU General Public License as published by
23  * the Free Software Foundation, either version 3 of the License, or
24  * (at your option) any later version.
25  *
26  * This program is distributed in the hope that it will be useful,
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29  * GNU General Public License for more details.
30  *
31  * You should have received a copy of the GNU General Public License
32  * along with this program. If not, see <http://www.gnu.org/licenses/>.
33  */
34 interface Criteria extends FrameworkInterface {
35         /**
36          * Setter for wrapper class name
37          *
38          * @param       $wrapperConfigEntry             Configuration entry which hold the wrapper class' name
39          * @return      void
40          */
41         function setWrapperConfigEntry ($wrapperConfigEntry);
42
43         /**
44          * Getter for wrapper class name
45          *
46          * @return      $wrapperConfigEntry             Configuration entry which hold the wrapper class' name
47          */
48         function getWrapperConfigEntry ();
49
50         /**
51          * Checks whether given key is set
52          *
53          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
54          * @param       $criteriaKey    Criteria key
55          * @return      $isSet                  Whether key is set
56          */
57         function isKeySet ($criteriaType, $criteriaKey);
58
59         /**
60          * Checks whether given key is set for 'choice' type
61          *
62          * @param       $criteriaKey    Criteria key
63          * @return      $isSet                  Whether key is set
64          */
65         function isChoiceKeySet ($criteriaKey);
66
67         /**
68          * Checks whether given key is set for 'exclude' type
69          *
70          * @param       $criteriaKey    Criteria key
71          * @return      $isSet                  Whether key is set
72          */
73         function isExcludeKeySet ($criteriaKey);
74
75         /**
76          * Getter for criteria array
77          *
78          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
79          * @return      $criteria
80          */
81         function getCriteriaArray ($criteriaType = 'default');
82
83         /**
84          * Getter for criteria array 'choice' type
85          *
86          * @return      $criteria
87          */
88         function getCriteriaChoiceArray ();
89
90         /**
91          * Getter for criteria array 'exclude' type
92          *
93          * @return      $criteria
94          */
95         function getCriteriaExcludeArray ();
96
97         /**
98          * Unsets a criteria key from all criteria types
99          *
100          * @param       $criteriaKey    Criteria key to unset
101          * @return      void
102          */
103         function unsetCriteria ($criteriaKey);
104
105         /**
106          * Add criteria, this method converts dashes to underscores because dashes
107          * are not valid for criteria keys.
108          *
109          * @param       $criteriaKey    Criteria key
110          * @param       $criteriaValue  Criteria value
111          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
112          * @return      void
113          */
114         function addCriteria ($criteriaKey, $criteriaValue, $criteriaType = 'default');
115
116         /**
117          * Sets criteria, this method converts dashes to underscores because dashes
118          * are not valid for criteria keys.
119          *
120          * @param       $criteriaKey    Criteria key
121          * @param       $criteriaValue  Criteria value
122          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
123          * @return      void
124          */
125         function setCriteria ($criteriaKey, $criteriaValue, $criteriaType = 'default');
126
127         /**
128          * Add "choice" criteria, this method converts dashes to underscores because
129          * dashes are not valid for criteria keys.
130          *
131          * @param       $criteriaKey    Criteria key
132          * @param       $criteriaValue  Criteria value
133          * @return      void
134          */
135         function addChoiceCriteria ($criteriaKey, $criteriaValue);
136
137         /**
138          * Add "exclude" criteria, this method converts dashes to underscores because
139          * dashes are not valid for criteria keys.
140          *
141          * @param       $criteriaKey    Criteria key
142          * @param       $criteriaValue  Criteria value
143          * @return      void
144          */
145         function addExcludeCriteria ($criteriaKey, $criteriaValue);
146
147         /**
148          * Add configured criteria
149          *
150          * @param       $criteriaKey    Criteria key
151          * @param       $configEntry    Configuration entry
152          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
153          * @return      void
154          */
155         function addConfiguredCriteria ($criteriaKey, $configEntry, $criteriaType = 'default');
156
157         /**
158          * Get criteria element or false if not found
159          *
160          * @param       $criteriaKey    The requested criteria key
161          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
162          * @return      $value                  Whether the value of the critera or false
163          */
164         function getCriteriaElemnent ($criteriaKey, $criteriaType = 'default');
165
166         /**
167          * Get criteria element or false if not found for 'choice' type
168          *
169          * @param       $criteriaKey    The requested criteria key
170          * @return      $value                  Whether the value of the critera or false
171          */
172         function getCriteriaChoiceElemnent ($criteriaKey);
173
174         /**
175          * Get criteria element or false if not found for 'exclude' type
176          *
177          * @param       $criteriaKey    The requested criteria key
178          * @return      $value                  Whether the value of the critera or false
179          */
180         function getCriteriaExcludeElemnent ($criteriaKey);
181
182         /**
183          * Checks whether given array entry matches
184          *
185          * @param       $entryArray             Array with the entries to find
186          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
187          * @return      $matches                Whether the entry matches or not
188          */
189         function ifEntryMatches (array $entryArray, $criteriaType = 'default');
190
191         /**
192          * Checks whether given array 'choice' entry matches
193          *
194          * @param       $entryArray             Array with the entries to find
195          * @return      $matches                Whether the entry matches or not
196          */
197         function ifChoiceMatches (array $entryArray);
198
199         /**
200          * Checks whether given array 'exclude' entry matches
201          *
202          * @param       $entryArray             Array with the entries to find
203          * @return      $matches                Whether the entry matches or not
204          */
205         function ifExcludeMatches (array $entryArray);
206
207         /**
208          * "Getter" for a cache key
209          *
210          * @param       $onlyKeys       Only use these keys for a cache key
211          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
212          * @return      $cacheKey       The key suitable for the cache system
213          */
214         function getCacheKey ($onlyKeys = array(), $criteriaType = 'default');
215
216         /**
217          * "Getter" for a cache key ('choice' type)
218          *
219          * @param       $onlyKeys       Only use these keys for a cache key
220          * @return      $cacheKey       The key suitable for the cache system
221          */
222         function getCacheKeyChoice ($onlyKeys = array());
223
224         /**
225          * "Getter" for a cache key ('exclude' type)
226          *
227          * @param       $onlyKeys       Only use these keys for a cache key
228          * @return      $cacheKey       The key suitable for the cache system
229          */
230         function getCacheKeyExclude ($onlyKeys = array());
231
232         /**
233          * Count the criteria, e.g. useful to find out if a database query has no
234          * limitation (search criteria).
235          *
236          * @param       $criteriaType   Type of this criteria, can be one of 'default' (default), 'choice' or 'exclude'
237          * @return      $count  Count of all criteria entries
238          */
239         function count ($criteriaType = 'default');
240
241         /**
242          * Count 'choice' criteria, e.g. useful to find out if a database query
243          * has no limitation (search criteria).
244          *
245          * @return      $count  Count of all criteria entries
246          */
247         function countChoice ();
248
249         /**
250          * Count 'exclude' criteria, e.g. useful to find out if a database query
251          * has no limitation (search criteria).
252          *
253          * @return      $count  Count of all criteria entries
254          */
255         function countExclude ();
256
257 }