Clover Coverage Report - Pebble 2.5-SNAPSHOT
Coverage timestamp: Sat Jun 12 2010 09:39:29 EST
../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
21   154   11   2,33
4   54   0,52   9
9     1,22  
1    
This report was generated with an evaluation server license. Purchase Clover or configure your license.
 
  SearchResults       Line # 48 21 0% 11 0 100% 1.0
 
  (20)
 
1    /*
2    * Copyright (c) 2003-2006, Simon Brown
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    *
8    * - Redistributions of source code must retain the above copyright
9    * notice, this list of conditions and the following disclaimer.
10    *
11    * - Redistributions in binary form must reproduce the above copyright
12    * notice, this list of conditions and the following disclaimer in
13    * the documentation and/or other materials provided with the
14    * distribution.
15    *
16    * - Neither the name of Pebble nor the names of its contributors may
17    * be used to endorse or promote products derived from this software
18    * without specific prior written permission.
19    *
20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21    * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23    * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24    * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25    * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26    * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27    * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28    * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29    * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30    * POSSIBILITY OF SUCH DAMAGE.
31    */
32    package net.sourceforge.pebble.search;
33   
34    import net.sourceforge.pebble.comparator.SearchHitByDateComparator;
35    import net.sourceforge.pebble.comparator.SearchHitByScoreComparator;
36    import net.sourceforge.pebble.util.StringUtils;
37   
38    import java.util.ArrayList;
39    import java.util.Collections;
40    import java.util.Iterator;
41    import java.util.List;
42   
43    /**
44    * A container for the results (hits) of a search.
45    *
46    * @author Simon Brown
47    */
 
48    public class SearchResults {
49   
50    /** the original query */
51    private String query;
52   
53    /** an optional message */
54    private String message;
55   
56    /** the collection of search results */
57    private List hits = new ArrayList();
58   
59    /**
60    * Gets the query that was used to generate these results.
61    *
62    * @return the original query
63    */
 
64  2 toggle public String getQuery() {
65  2 return this.query;
66    }
67   
68    /**
69    * Sets the query that was used to generate these results.
70    *
71    * @param s the original query
72    */
 
73  30 toggle public void setQuery(String s) {
74  30 this.query = StringUtils.transformHTML(s);
75    }
76   
77    /**
78    * Gets the message associated with these results. This may contain
79    * information or an error message.
80    *
81    * @return the message (can be null)
82    */
 
83  2 toggle public String getMessage() {
84  2 return this.message;
85    }
86   
87    /**
88    * Gets the message associated with these results. This may contain
89    * information or an error message.
90    *
91    * @param s the message (can be null)
92    */
 
93  2 toggle public void setMessage(String s) {
94  2 this.message = s;
95    }
96   
97    /**
98    * Adds a hit to the collection of hits.
99    *
100    * @param hit a SearchHit instance
101    */
 
102  30 toggle public void add(SearchHit hit) {
103  30 hits.add(hit);
104    }
105   
106    /**
107    * Gets the number of hits that the query returned.
108    *
109    * @return the number of hits as an int
110    */
 
111  34 toggle public int getNumberOfHits() {
112  34 return hits.size();
113    }
114   
115    /**
116    * Gets a collection containing all of the hits.
117    *
118    * @return a Collection of SearchHit instances
119    */
 
120  24 toggle public List getHits() {
121  24 return this.hits;
122    }
123   
124    /**
125    * Sorts the search results by score, in reverse order.
126    */
 
127  2 toggle public void sortByScoreDescending() {
128  2 Collections.sort(hits, new SearchHitByScoreComparator());
129   
130  2 int number = 1;
131  2 Iterator it = hits.iterator();
132  8 while (it.hasNext()) {
133  6 SearchHit hit = (SearchHit)it.next();
134  6 hit.setNumber(number);
135  6 number++;
136    }
137    }
138   
139    /**
140    * Sorts the search results by date, in reverse order.
141    */
 
142  2 toggle public void sortByDateDescending() {
143  2 Collections.sort(hits, new SearchHitByDateComparator());
144   
145  2 int number = 1;
146  2 Iterator it = hits.iterator();
147  8 while (it.hasNext()) {
148  6 SearchHit hit = (SearchHit)it.next();
149  6 hit.setNumber(number);
150  6 number++;
151    }
152    }
153   
154    }