Doctrine_Search_Query.html 30 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
<html>
    <head>
        <title>Coverage for Doctrine_Search_Query</title>
        <style type="text/css">
            .covered{ background: green;}
            .normal{ background: white;}
            .red{ background: red;}
            .orange{ background: #f90;}
       </style>
</head>
<body><h1>Coverage for Doctrine_Search_Query</h1><p><a href="index.php">Back to coverage report</a></p><table>
<tr><td>1</td>
<td class="normal">&lt;?php
</td></tr>
<tr><td>2</td>
<td class="normal">/*
</td></tr>
<tr><td>3</td>
<td class="normal">&nbsp;*&nbsp;&nbsp;$Id:&nbsp;Hook.php&nbsp;1939&nbsp;2007-07-05&nbsp;23:47:48Z&nbsp;zYne&nbsp;$
</td></tr>
<tr><td>4</td>
<td class="normal">&nbsp;*
</td></tr>
<tr><td>5</td>
<td class="normal">&nbsp;*&nbsp;THIS&nbsp;SOFTWARE&nbsp;IS&nbsp;PROVIDED&nbsp;BY&nbsp;THE&nbsp;COPYRIGHT&nbsp;HOLDERS&nbsp;AND&nbsp;CONTRIBUTORS
</td></tr>
<tr><td>6</td>
<td class="normal">&nbsp;*&nbsp;&quot;AS&nbsp;IS&quot;&nbsp;AND&nbsp;ANY&nbsp;EXPRESS&nbsp;OR&nbsp;IMPLIED&nbsp;WARRANTIES,&nbsp;INCLUDING,&nbsp;BUT&nbsp;NOT
</td></tr>
<tr><td>7</td>
<td class="normal">&nbsp;*&nbsp;LIMITED&nbsp;TO,&nbsp;THE&nbsp;IMPLIED&nbsp;WARRANTIES&nbsp;OF&nbsp;MERCHANTABILITY&nbsp;AND&nbsp;FITNESS&nbsp;FOR
</td></tr>
<tr><td>8</td>
<td class="normal">&nbsp;*&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE&nbsp;ARE&nbsp;DISCLAIMED.&nbsp;IN&nbsp;NO&nbsp;EVENT&nbsp;SHALL&nbsp;THE&nbsp;COPYRIGHT
</td></tr>
<tr><td>9</td>
<td class="normal">&nbsp;*&nbsp;OWNER&nbsp;OR&nbsp;CONTRIBUTORS&nbsp;BE&nbsp;LIABLE&nbsp;FOR&nbsp;ANY&nbsp;DIRECT,&nbsp;INDIRECT,&nbsp;INCIDENTAL,
</td></tr>
<tr><td>10</td>
<td class="normal">&nbsp;*&nbsp;SPECIAL,&nbsp;EXEMPLARY,&nbsp;OR&nbsp;CONSEQUENTIAL&nbsp;DAMAGES&nbsp;(INCLUDING,&nbsp;BUT&nbsp;NOT
</td></tr>
<tr><td>11</td>
<td class="normal">&nbsp;*&nbsp;LIMITED&nbsp;TO,&nbsp;PROCUREMENT&nbsp;OF&nbsp;SUBSTITUTE&nbsp;GOODS&nbsp;OR&nbsp;SERVICES;&nbsp;LOSS&nbsp;OF&nbsp;USE,
</td></tr>
<tr><td>12</td>
<td class="normal">&nbsp;*&nbsp;DATA,&nbsp;OR&nbsp;PROFITS;&nbsp;OR&nbsp;BUSINESS&nbsp;INTERRUPTION)&nbsp;HOWEVER&nbsp;CAUSED&nbsp;AND&nbsp;ON&nbsp;ANY
</td></tr>
<tr><td>13</td>
<td class="normal">&nbsp;*&nbsp;THEORY&nbsp;OF&nbsp;LIABILITY,&nbsp;WHETHER&nbsp;IN&nbsp;CONTRACT,&nbsp;STRICT&nbsp;LIABILITY,&nbsp;OR&nbsp;TORT
</td></tr>
<tr><td>14</td>
<td class="normal">&nbsp;*&nbsp;(INCLUDING&nbsp;NEGLIGENCE&nbsp;OR&nbsp;OTHERWISE)&nbsp;ARISING&nbsp;IN&nbsp;ANY&nbsp;WAY&nbsp;OUT&nbsp;OF&nbsp;THE&nbsp;USE
</td></tr>
<tr><td>15</td>
<td class="normal">&nbsp;*&nbsp;OF&nbsp;THIS&nbsp;SOFTWARE,&nbsp;EVEN&nbsp;IF&nbsp;ADVISED&nbsp;OF&nbsp;THE&nbsp;POSSIBILITY&nbsp;OF&nbsp;SUCH&nbsp;DAMAGE.
</td></tr>
<tr><td>16</td>
<td class="normal">&nbsp;*
</td></tr>
<tr><td>17</td>
<td class="normal">&nbsp;*&nbsp;This&nbsp;software&nbsp;consists&nbsp;of&nbsp;voluntary&nbsp;contributions&nbsp;made&nbsp;by&nbsp;many&nbsp;individuals
</td></tr>
<tr><td>18</td>
<td class="normal">&nbsp;*&nbsp;and&nbsp;is&nbsp;licensed&nbsp;under&nbsp;the&nbsp;LGPL.&nbsp;For&nbsp;more&nbsp;information,&nbsp;see
</td></tr>
<tr><td>19</td>
<td class="normal">&nbsp;*&nbsp;&lt;http://www.phpdoctrine.com&gt;.
</td></tr>
<tr><td>20</td>
<td class="normal">&nbsp;*/
</td></tr>
<tr><td>21</td>
<td class="normal">
</td></tr>
<tr><td>22</td>
<td class="normal">/**
</td></tr>
<tr><td>23</td>
<td class="normal">&nbsp;*&nbsp;Doctrine_Search_Query
</td></tr>
<tr><td>24</td>
<td class="normal">&nbsp;*
</td></tr>
<tr><td>25</td>
<td class="normal">&nbsp;*&nbsp;@package&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Doctrine
</td></tr>
<tr><td>26</td>
<td class="normal">&nbsp;*&nbsp;@subpackage&nbsp;&nbsp;Search
</td></tr>
<tr><td>27</td>
<td class="normal">&nbsp;*&nbsp;@author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Konsta&nbsp;Vesterinen&nbsp;&lt;kvesteri@cc.hut.fi&gt;
</td></tr>
<tr><td>28</td>
<td class="normal">&nbsp;*&nbsp;@license&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.opensource.org/licenses/lgpl-license.php&nbsp;LGPL
</td></tr>
<tr><td>29</td>
<td class="normal">&nbsp;*&nbsp;@version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$Revision$
</td></tr>
<tr><td>30</td>
<td class="normal">&nbsp;*&nbsp;@link&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;www.phpdoctrine.com
</td></tr>
<tr><td>31</td>
<td class="normal">&nbsp;*&nbsp;@since&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.0
</td></tr>
<tr><td>32</td>
<td class="normal">&nbsp;*/
</td></tr>
<tr><td>33</td>
<td class="normal">class&nbsp;Doctrine_Search_Query
</td></tr>
<tr><td>34</td>
<td class="covered">{
</td></tr>
<tr><td>35</td>
115
<td class="normal">
116 117
</td></tr>
<tr><td>36</td>
118
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;/**
119 120
</td></tr>
<tr><td>37</td>
121
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@var&nbsp;Doctrine_Table&nbsp;$_table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;index&nbsp;table
122 123
</td></tr>
<tr><td>38</td>
124
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
125 126
</td></tr>
<tr><td>39</td>
127
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_table&nbsp;=&nbsp;array();
128 129
</td></tr>
<tr><td>40</td>
130
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
131 132
</td></tr>
<tr><td>41</td>
133
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_sql&nbsp;=&nbsp;'';
134 135
</td></tr>
<tr><td>42</td>
136
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
137 138
</td></tr>
<tr><td>43</td>
139
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_params&nbsp;=&nbsp;array();
140 141
</td></tr>
<tr><td>44</td>
142
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
143 144
</td></tr>
<tr><td>45</td>
meus's avatar
meus committed
145
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_words&nbsp;=&nbsp;array();
146 147
</td></tr>
<tr><td>46</td>
meus's avatar
meus committed
148
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
149 150
</td></tr>
<tr><td>47</td>
meus's avatar
meus committed
151
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_tokenizer;
152 153
</td></tr>
<tr><td>48</td>
meus's avatar
meus committed
154
<td class="normal">
155 156
</td></tr>
<tr><td>49</td>
meus's avatar
meus committed
157
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;$_condition;
158 159
</td></tr>
<tr><td>50</td>
meus's avatar
meus committed
160
<td class="normal">
161 162
</td></tr>
<tr><td>51</td>
meus's avatar
meus committed
163
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;/**
164 165
</td></tr>
<tr><td>52</td>
meus's avatar
meus committed
166
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;Doctrine_Table&nbsp;$_table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;index&nbsp;table
167 168
</td></tr>
<tr><td>53</td>
meus's avatar
meus committed
169
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
170 171
</td></tr>
<tr><td>54</td>
meus's avatar
meus committed
172
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;__construct($table)
173 174
</td></tr>
<tr><td>55</td>
meus's avatar
meus committed
175
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
176 177
</td></tr>
<tr><td>56</td>
meus's avatar
meus committed
178
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(is_string($table))&nbsp;{
179 180
</td></tr>
<tr><td>57</td>
meus's avatar
meus committed
181
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$table&nbsp;=&nbsp;Doctrine_Manager::table($table);
182 183
</td></tr>
<tr><td>58</td>
meus's avatar
meus committed
184
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
185 186
</td></tr>
<tr><td>59</td>
meus's avatar
meus committed
187
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!&nbsp;$table&nbsp;instanceof&nbsp;Doctrine_Table)&nbsp;{
188 189
</td></tr>
<tr><td>60</td>
meus's avatar
meus committed
190
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Doctrine_Search_Exception('Invalid&nbsp;argument&nbsp;type.&nbsp;Expected&nbsp;instance&nbsp;of&nbsp;Doctrine_Table.');
191 192
</td></tr>
<tr><td>61</td>
meus's avatar
meus committed
193
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
194 195
</td></tr>
<tr><td>62</td>
meus's avatar
meus committed
196
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
197 198
</td></tr>
<tr><td>63</td>
meus's avatar
meus committed
199
<td class="normal">
200 201
</td></tr>
<tr><td>64</td>
meus's avatar
meus committed
202
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_tokenizer&nbsp;=&nbsp;new&nbsp;Doctrine_Query_Tokenizer();
203 204
</td></tr>
<tr><td>65</td>
meus's avatar
meus committed
205
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_table&nbsp;=&nbsp;$table;
206 207
</td></tr>
<tr><td>66</td>
meus's avatar
meus committed
208
<td class="normal">
209 210
</td></tr>
<tr><td>67</td>
meus's avatar
meus committed
211
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$foreignId&nbsp;=&nbsp;current(array_diff($this-&gt;_table-&gt;getColumnNames(),&nbsp;array('keyword',&nbsp;'field',&nbsp;'position')));
212 213
</td></tr>
<tr><td>68</td>
214
<td class="normal">
215 216
</td></tr>
<tr><td>69</td>
meus's avatar
meus committed
217
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_condition&nbsp;=&nbsp;$foreignId&nbsp;.&nbsp;'&nbsp;%s&nbsp;(SELECT&nbsp;'&nbsp;.&nbsp;$foreignId&nbsp;.&nbsp;'&nbsp;FROM&nbsp;'&nbsp;.&nbsp;$this-&gt;_table-&gt;getTableName()&nbsp;.&nbsp;'&nbsp;WHERE&nbsp;';
218 219
</td></tr>
<tr><td>70</td>
meus's avatar
meus committed
220
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;}
221 222
</td></tr>
<tr><td>71</td>
meus's avatar
meus committed
223
<td class="normal">
224 225
</td></tr>
<tr><td>72</td>
226
<td class="normal">
227 228
</td></tr>
<tr><td>73</td>
meus's avatar
meus committed
229
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;query($text)
230 231
</td></tr>
<tr><td>74</td>
meus's avatar
meus committed
232
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
233 234
</td></tr>
<tr><td>75</td>
meus's avatar
meus committed
235
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$text&nbsp;=&nbsp;trim($text);
236 237
</td></tr>
<tr><td>76</td>
meus's avatar
meus committed
238
<td class="normal">
239 240
</td></tr>
<tr><td>77</td>
meus's avatar
meus committed
241
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$foreignId&nbsp;=&nbsp;current(array_diff($this-&gt;_table-&gt;getColumnNames(),&nbsp;array('keyword',&nbsp;'field',&nbsp;'position')));
242 243
</td></tr>
<tr><td>78</td>
meus's avatar
meus committed
244
<td class="normal">
245 246
</td></tr>
<tr><td>79</td>
meus's avatar
meus committed
247
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$weighted&nbsp;=&nbsp;false;
248 249
</td></tr>
<tr><td>80</td>
meus's avatar
meus committed
250
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strpos($text,&nbsp;'^')&nbsp;===&nbsp;false)&nbsp;{
251 252
</td></tr>
<tr><td>81</td>
meus's avatar
meus committed
253
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$select&nbsp;=&nbsp;'SELECT&nbsp;COUNT(keyword)&nbsp;AS&nbsp;relevance,&nbsp;'&nbsp;.&nbsp;$foreignId;
254 255
</td></tr>
<tr><td>82</td>
meus's avatar
meus committed
256
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$from&nbsp;=&nbsp;'FROM&nbsp;'&nbsp;.&nbsp;$this-&gt;_table-&gt;getTableName();
257 258
</td></tr>
<tr><td>83</td>
meus's avatar
meus committed
259
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
260 261
</td></tr>
<tr><td>84</td>
meus's avatar
meus committed
262
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;organize&nbsp;terms&nbsp;according&nbsp;weights
263 264
</td></tr>
<tr><td>85</td>
meus's avatar
meus committed
265
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$weighted&nbsp;=&nbsp;true;
266 267
</td></tr>
<tr><td>86</td>
meus's avatar
meus committed
268
<td class="normal">
269 270
</td></tr>
<tr><td>87</td>
meus's avatar
meus committed
271
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$select&nbsp;=&nbsp;'SELECT&nbsp;SUM(sub_relevance)&nbsp;AS&nbsp;relevance,&nbsp;'&nbsp;.&nbsp;$foreignId;
272 273
</td></tr>
<tr><td>88</td>
meus's avatar
meus committed
274
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$from&nbsp;=&nbsp;'FROM&nbsp;'&nbsp;;
275 276
</td></tr>
<tr><td>89</td>
meus's avatar
meus committed
277
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
278 279
</td></tr>
<tr><td>90</td>
meus's avatar
meus committed
280
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
281 282
</td></tr>
<tr><td>91</td>
meus's avatar
meus committed
283
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;=&nbsp;'WHERE&nbsp;';
284 285
</td></tr>
<tr><td>92</td>
meus's avatar
meus committed
286
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;.=&nbsp;$this-&gt;parseClause($text);
287 288
</td></tr>
<tr><td>93</td>
meus's avatar
meus committed
289
<td class="normal">
290 291
</td></tr>
<tr><td>94</td>
meus's avatar
meus committed
292
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$groupby&nbsp;=&nbsp;'GROUP&nbsp;BY&nbsp;'&nbsp;.&nbsp;$foreignId;
293 294
</td></tr>
<tr><td>95</td>
meus's avatar
meus committed
295
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$orderby&nbsp;=&nbsp;'ORDER&nbsp;BY&nbsp;relevance&nbsp;DESC';
296 297
</td></tr>
<tr><td>96</td>
meus's avatar
meus committed
298
<td class="normal">
299 300
</td></tr>
<tr><td>97</td>
meus's avatar
meus committed
301
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_sql&nbsp;=&nbsp;$select&nbsp;.&nbsp;'&nbsp;'&nbsp;.&nbsp;$from&nbsp;.&nbsp;'&nbsp;'&nbsp;.&nbsp;$where&nbsp;.&nbsp;'&nbsp;'&nbsp;.&nbsp;$groupby&nbsp;.&nbsp;'&nbsp;'&nbsp;.&nbsp;$orderby;
302 303
</td></tr>
<tr><td>98</td>
meus's avatar
meus committed
304
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;}
305 306
</td></tr>
<tr><td>99</td>
meus's avatar
meus committed
307
<td class="normal">
308 309
</td></tr>
<tr><td>100</td>
meus's avatar
meus committed
310
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;parseClause($originalClause,&nbsp;$recursive&nbsp;=&nbsp;false)
311 312
</td></tr>
<tr><td>101</td>
meus's avatar
meus committed
313
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
314 315
</td></tr>
<tr><td>102</td>
meus's avatar
meus committed
316
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$clause&nbsp;=&nbsp;$this-&gt;_tokenizer-&gt;bracketTrim($originalClause);
317 318
</td></tr>
<tr><td>103</td>
meus's avatar
meus committed
319
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
320 321
</td></tr>
<tr><td>104</td>
meus's avatar
meus committed
322
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$brackets&nbsp;=&nbsp;false;
323 324
</td></tr>
<tr><td>105</td>
325
<td class="normal">
326 327
</td></tr>
<tr><td>106</td>
meus's avatar
meus committed
328
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($clause&nbsp;!==&nbsp;$originalClause)&nbsp;{
329 330
</td></tr>
<tr><td>107</td>
meus's avatar
meus committed
331
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$brackets&nbsp;=&nbsp;true;
332 333
</td></tr>
<tr><td>108</td>
meus's avatar
meus committed
334
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
335 336
</td></tr>
<tr><td>109</td>
337
<td class="normal">
338 339
</td></tr>
<tr><td>110</td>
meus's avatar
meus committed
340
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$foreignId&nbsp;=&nbsp;current(array_diff($this-&gt;_table-&gt;getColumnNames(),&nbsp;array('keyword',&nbsp;'field',&nbsp;'position')));
341 342
</td></tr>
<tr><td>111</td>
meus's avatar
meus committed
343
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
344 345
</td></tr>
<tr><td>112</td>
meus's avatar
meus committed
346
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$terms&nbsp;=&nbsp;$this-&gt;_tokenizer-&gt;sqlExplode($clause,&nbsp;'&nbsp;OR&nbsp;',&nbsp;'(',&nbsp;')');
347 348
</td></tr>
<tr><td>113</td>
meus's avatar
meus committed
349
<td class="normal">
350 351
</td></tr>
<tr><td>114</td>
meus's avatar
meus committed
352
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret&nbsp;=&nbsp;array();
353 354
</td></tr>
<tr><td>115</td>
meus's avatar
meus committed
355
<td class="normal">
356 357
</td></tr>
<tr><td>116</td>
meus's avatar
meus committed
358
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(count($terms)&nbsp;&gt;&nbsp;1)&nbsp;{
359 360
</td></tr>
<tr><td>117</td>
meus's avatar
meus committed
361
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$leavesOnly&nbsp;=&nbsp;true;
362 363
</td></tr>
<tr><td>118</td>
meus's avatar
meus committed
364
<td class="normal">
365 366
</td></tr>
<tr><td>119</td>
meus's avatar
meus committed
367
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($terms&nbsp;as&nbsp;$k&nbsp;=&gt;&nbsp;$term)&nbsp;{
368 369
</td></tr>
<tr><td>120</td>
meus's avatar
meus committed
370
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($this-&gt;isExpression($term))&nbsp;{
371 372
</td></tr>
<tr><td>121</td>
meus's avatar
meus committed
373
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret[$k]&nbsp;=&nbsp;$this-&gt;parseClause($term,&nbsp;true);
374 375
</td></tr>
<tr><td>122</td>
meus's avatar
meus committed
376
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$leavesOnly&nbsp;=&nbsp;false;
377 378
</td></tr>
<tr><td>123</td>
meus's avatar
meus committed
379
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
380 381
</td></tr>
<tr><td>124</td>
meus's avatar
meus committed
382
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret[$k]&nbsp;=&nbsp;$this-&gt;parseTerm($term);
383 384
</td></tr>
<tr><td>125</td>
meus's avatar
meus committed
385
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
386 387
</td></tr>
<tr><td>126</td>
meus's avatar
meus committed
388
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
389 390
</td></tr>
<tr><td>127</td>
meus's avatar
meus committed
391
<td class="normal">
392 393
</td></tr>
<tr><td>128</td>
meus's avatar
meus committed
394
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$return&nbsp;=&nbsp;implode('&nbsp;OR&nbsp;',&nbsp;$ret);
395 396
</td></tr>
<tr><td>129</td>
meus's avatar
meus committed
397
<td class="normal">
398 399
</td></tr>
<tr><td>130</td>
meus's avatar
meus committed
400
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($leavesOnly&nbsp;&amp;&amp;&nbsp;$recursive)&nbsp;{
401 402
</td></tr>
<tr><td>131</td>
meus's avatar
meus committed
403
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$return&nbsp;=&nbsp;sprintf($this-&gt;_condition,&nbsp;'IN')&nbsp;.&nbsp;$return&nbsp;.&nbsp;')';
404 405
</td></tr>
<tr><td>132</td>
meus's avatar
meus committed
406
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$brackets&nbsp;=&nbsp;false;
407 408
</td></tr>
<tr><td>133</td>
meus's avatar
meus committed
409
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
410 411
</td></tr>
<tr><td>134</td>
meus's avatar
meus committed
412
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
413 414
</td></tr>
<tr><td>135</td>
meus's avatar
meus committed
415
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$terms&nbsp;=&nbsp;$this-&gt;_tokenizer-&gt;sqlExplode($clause,&nbsp;'&nbsp;',&nbsp;'(',&nbsp;')');
416 417
</td></tr>
<tr><td>136</td>
meus's avatar
meus committed
418
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
419 420
</td></tr>
<tr><td>137</td>
meus's avatar
meus committed
421
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(count($terms)&nbsp;===&nbsp;1&nbsp;&amp;&amp;&nbsp;!&nbsp;$recursive)&nbsp;{
422 423
</td></tr>
<tr><td>138</td>
meus's avatar
meus committed
424
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$return&nbsp;=&nbsp;$this-&gt;parseTerm($clause);
425 426
</td></tr>
<tr><td>139</td>
meus's avatar
meus committed
427
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
428 429
</td></tr>
<tr><td>140</td>
meus's avatar
meus committed
430
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($terms&nbsp;as&nbsp;$k&nbsp;=&gt;&nbsp;$term)&nbsp;{
431 432
</td></tr>
<tr><td>141</td>
meus's avatar
meus committed
433
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$term&nbsp;=&nbsp;trim($term);
434 435
</td></tr>
<tr><td>142</td>
436
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
437 438
</td></tr>
<tr><td>143</td>
meus's avatar
meus committed
439
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($term&nbsp;===&nbsp;'AND')&nbsp;{
440 441
</td></tr>
<tr><td>144</td>
meus's avatar
meus committed
442
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;
443 444
</td></tr>
<tr><td>145</td>
meus's avatar
meus committed
445
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
446 447
</td></tr>
<tr><td>146</td>
meus's avatar
meus committed
448
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
449 450
</td></tr>
<tr><td>147</td>
meus's avatar
meus committed
451
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(substr($term,&nbsp;0,&nbsp;1)&nbsp;===&nbsp;'-')&nbsp;{
452 453
</td></tr>
<tr><td>148</td>
meus's avatar
meus committed
454
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$operator&nbsp;=&nbsp;'NOT&nbsp;IN';
455 456
</td></tr>
<tr><td>149</td>
meus's avatar
meus committed
457
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$term&nbsp;=&nbsp;substr($term,&nbsp;1);
458 459
</td></tr>
<tr><td>150</td>
meus's avatar
meus committed
460
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
461
</td></tr>
462
<tr><td>151</td>
meus's avatar
meus committed
463
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$operator&nbsp;=&nbsp;'IN';
464
</td></tr>
465
<tr><td>152</td>
meus's avatar
meus committed
466
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
467
</td></tr>
468
<tr><td>153</td>
meus's avatar
meus committed
469
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;
470
</td></tr>
471
<tr><td>154</td>
meus's avatar
meus committed
472
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($this-&gt;isExpression($term))&nbsp;{
473
</td></tr>
474
<tr><td>155</td>
meus's avatar
meus committed
475
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret[$k]&nbsp;=&nbsp;$this-&gt;parseClause($term,&nbsp;true);
476
</td></tr>
477
<tr><td>156</td>
meus's avatar
meus committed
478
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
479
</td></tr>
480
<tr><td>157</td>
meus's avatar
meus committed
481
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ret[$k]&nbsp;=&nbsp;sprintf($this-&gt;_condition,&nbsp;$operator)&nbsp;.&nbsp;$this-&gt;parseTerm($term)&nbsp;.&nbsp;')';
482
</td></tr>
483
<tr><td>158</td>
meus's avatar
meus committed
484
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
485
</td></tr>
486
<tr><td>159</td>
meus's avatar
meus committed
487
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
488
</td></tr>
489
<tr><td>160</td>
meus's avatar
meus committed
490
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$return&nbsp;=&nbsp;implode('&nbsp;AND&nbsp;',&nbsp;$ret);
491
</td></tr>
492
<tr><td>161</td>
meus's avatar
meus committed
493
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
494
</td></tr>
495
<tr><td>162</td>
meus's avatar
meus committed
496
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
497
</td></tr>
498
<tr><td>163</td>
meus's avatar
meus committed
499
<td class="normal">
500
</td></tr>
501
<tr><td>164</td>
meus's avatar
meus committed
502
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($brackets)&nbsp;{
503
</td></tr>
504
<tr><td>165</td>
meus's avatar
meus committed
505
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;'('&nbsp;.&nbsp;$return&nbsp;.&nbsp;')';
506
</td></tr>
507
<tr><td>166</td>
meus's avatar
meus committed
508
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
509
</td></tr>
510
<tr><td>167</td>
meus's avatar
meus committed
511
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$return;
512
</td></tr>
513
<tr><td>168</td>
meus's avatar
meus committed
514
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
515
</td></tr>
516
<tr><td>169</td>
meus's avatar
meus committed
517
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
518
</td></tr>
519
<tr><td>170</td>
meus's avatar
meus committed
520
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;isExpression($term)
521
</td></tr>
522
<tr><td>171</td>
meus's avatar
meus committed
523
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
524
</td></tr>
525
<tr><td>172</td>
meus's avatar
meus committed
526
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strpos($term,&nbsp;'(')&nbsp;!==&nbsp;false)&nbsp;{
527
</td></tr>
528
<tr><td>173</td>
meus's avatar
meus committed
529
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;
530
</td></tr>
531
<tr><td>174</td>
meus's avatar
meus committed
532
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
533
</td></tr>
534
<tr><td>175</td>
meus's avatar
meus committed
535
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$terms&nbsp;=&nbsp;$this-&gt;_tokenizer-&gt;quoteExplode($term);
536
</td></tr>
537
<tr><td>176</td>
meus's avatar
meus committed
538
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
539
</td></tr>
540
<tr><td>177</td>
meus's avatar
meus committed
541
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(count($terms)&nbsp;&gt;&nbsp;1);
542
</td></tr>
543
<tr><td>178</td>
meus's avatar
meus committed
544
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
545
</td></tr>
546
<tr><td>179</td>
meus's avatar
meus committed
547
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
548
</td></tr>
549
<tr><td>180</td>
550 551
<td class="normal">
</td></tr>
552
<tr><td>181</td>
meus's avatar
meus committed
553
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;parseTerm($term)
554
</td></tr>
555
<tr><td>182</td>
meus's avatar
meus committed
556
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
557
</td></tr>
558
<tr><td>183</td>
meus's avatar
meus committed
559
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$negation&nbsp;=&nbsp;false;
560
</td></tr>
561
<tr><td>184</td>
meus's avatar
meus committed
562
<td class="normal">
563
</td></tr>
564
<tr><td>185</td>
meus's avatar
meus committed
565
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strpos($term,&nbsp;&quot;'&quot;)&nbsp;===&nbsp;false)&nbsp;{
566
</td></tr>
567
<tr><td>186</td>
meus's avatar
meus committed
568
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;=&nbsp;$this-&gt;parseWord($term);
569
</td></tr>
570
<tr><td>187</td>
meus's avatar
meus committed
571
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
572
</td></tr>
573
<tr><td>188</td>
meus's avatar
meus committed
574
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$term&nbsp;=&nbsp;trim($term,&nbsp;&quot;'&nbsp;&quot;);
575
</td></tr>
576
<tr><td>189</td>
meus's avatar
meus committed
577
<td class="normal">
578
</td></tr>
579
<tr><td>190</td>
meus's avatar
meus committed
580
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$terms&nbsp;=&nbsp;$this-&gt;_tokenizer-&gt;quoteExplode($term);
581
</td></tr>
582
<tr><td>191</td>
meus's avatar
meus committed
583
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;=&nbsp;$this-&gt;parseWord($terms[0]);
584
</td></tr>
585
<tr><td>192</td>
meus's avatar
meus committed
586
<td class="normal">
587
</td></tr>
588
<tr><td>193</td>
meus's avatar
meus committed
589
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach&nbsp;($terms&nbsp;as&nbsp;$k&nbsp;=&gt;&nbsp;$word)&nbsp;{
590
</td></tr>
591
<tr><td>194</td>
meus's avatar
meus committed
592
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($k&nbsp;===&nbsp;0)&nbsp;{
593
</td></tr>
594
<tr><td>195</td>
meus's avatar
meus committed
595
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;
596
</td></tr>
597
<tr><td>196</td>
meus's avatar
meus committed
598
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
599
</td></tr>
600
<tr><td>197</td>
meus's avatar
meus committed
601
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;.=&nbsp;'&nbsp;AND&nbsp;(position&nbsp;+&nbsp;'&nbsp;.&nbsp;$k&nbsp;.&nbsp;')&nbsp;=&nbsp;(SELECT&nbsp;position&nbsp;FROM&nbsp;'&nbsp;.&nbsp;$this-&gt;_table-&gt;getTableName()&nbsp;.&nbsp;'&nbsp;WHERE&nbsp;'&nbsp;.&nbsp;$this-&gt;parseWord($word)&nbsp;.&nbsp;')';
602
</td></tr>
603
<tr><td>198</td>
meus's avatar
meus committed
604
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
605
</td></tr>
606
<tr><td>199</td>
meus's avatar
meus committed
607
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
608
</td></tr>
609
<tr><td>200</td>
meus's avatar
meus committed
610
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$where;
611
</td></tr>
612
<tr><td>201</td>
meus's avatar
meus committed
613
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
614
</td></tr>
615
<tr><td>202</td>
meus's avatar
meus committed
616
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;parseWord($word)
617
</td></tr>
618
<tr><td>203</td>
meus's avatar
meus committed
619
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
620
</td></tr>
621
<tr><td>204</td>
meus's avatar
meus committed
622
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_words[]&nbsp;=&nbsp;str_replace('*',&nbsp;'',&nbsp;$word);
623
</td></tr>
624
<tr><td>205</td>
meus's avatar
meus committed
625
<td class="normal">
626
</td></tr>
627
<tr><td>206</td>
meus's avatar
meus committed
628
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strpos($word,&nbsp;'?')&nbsp;!==&nbsp;false&nbsp;||
629
</td></tr>
630
<tr><td>207</td>
meus's avatar
meus committed
631
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strpos($word,&nbsp;'*')&nbsp;!==&nbsp;false)&nbsp;{
632
</td></tr>
633
<tr><td>208</td>
meus's avatar
meus committed
634
<td class="normal">
635
</td></tr>
636
<tr><td>209</td>
meus's avatar
meus committed
637
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$word&nbsp;=&nbsp;str_replace('*',&nbsp;'%',&nbsp;$word);
638
</td></tr>
639
<tr><td>210</td>
meus's avatar
meus committed
640
<td class="normal">
641
</td></tr>
642
<tr><td>211</td>
meus's avatar
meus committed
643
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;=&nbsp;'keyword&nbsp;LIKE&nbsp;?';
644
</td></tr>
645
<tr><td>212</td>
meus's avatar
meus committed
646
<td class="normal">
647
</td></tr>
648
<tr><td>213</td>
meus's avatar
meus committed
649
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$params&nbsp;=&nbsp;array($word);
650
</td></tr>
651
<tr><td>214</td>
meus's avatar
meus committed
652
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{
653
</td></tr>
654
<tr><td>215</td>
meus's avatar
meus committed
655
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$where&nbsp;=&nbsp;'keyword&nbsp;=&nbsp;?';
656
</td></tr>
657
<tr><td>216</td>
meus's avatar
meus committed
658
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
659
</td></tr>
660
<tr><td>217</td>
meus's avatar
meus committed
661
<td class="normal">
662
</td></tr>
663
<tr><td>218</td>
meus's avatar
meus committed
664
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;_params[]&nbsp;=&nbsp;$word;
665
</td></tr>
666
<tr><td>219</td>
meus's avatar
meus committed
667
<td class="normal">
668
</td></tr>
669
<tr><td>220</td>
meus's avatar
meus committed
670
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$where;
671
</td></tr>
672
<tr><td>221</td>
meus's avatar
meus committed
673
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
674
</td></tr>
675
<tr><td>222</td>
meus's avatar
meus committed
676
<td class="normal">
677
</td></tr>
678
<tr><td>223</td>
meus's avatar
meus committed
679
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getWords()
680
</td></tr>
681
<tr><td>224</td>
meus's avatar
meus committed
682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
</td></tr>
<tr><td>225</td>
<td class="red">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;_words;
</td></tr>
<tr><td>226</td>
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
</td></tr>
<tr><td>227</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getParams()
</td></tr>
<tr><td>228</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
</td></tr>
<tr><td>229</td>
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;_params;
</td></tr>
<tr><td>230</td>
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
</td></tr>
<tr><td>231</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getSql()
</td></tr>
<tr><td>232</td>
<td class="normal">&nbsp;&nbsp;&nbsp;&nbsp;{
</td></tr>
<tr><td>233</td>
<td class="covered">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$this-&gt;_sql;
</td></tr>
<tr><td>234</td>
<td class="orange">&nbsp;&nbsp;&nbsp;&nbsp;}
</td></tr>
<tr><td>235</td>
715
<td class="normal">}
716 717
</td></tr>
</table></body></html>