File Source: searchresults.java
/*
P/P * Method: net.sourceforge.pebble.search.SearchResults__static_init
*/
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 */
/*
P/P * Method: void net.sourceforge.pebble.search.SearchResults()
*
* Postconditions:
* this.hits == &new ArrayList(SearchResults#1)
* new ArrayList(SearchResults#1) num objects == 1
*/
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 public String getQuery() {
/*
P/P * Method: String getQuery()
*
* Preconditions:
* init'ed(this.query)
*
* Postconditions:
* return_value == this.query
* init'ed(return_value)
*/
65 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 public void setQuery(String s) {
/*
P/P * Method: void setQuery(String)
*
* Postconditions:
* init'ed(this.query)
*/
74 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 public String getMessage() {
/*
P/P * Method: String getMessage()
*
* Preconditions:
* init'ed(this.message)
*
* Postconditions:
* return_value == this.message
* init'ed(return_value)
*/
84 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 public void setMessage(String s) {
/*
P/P * Method: void setMessage(String)
*
* Postconditions:
* this.message == s
* init'ed(this.message)
*/
94 this.message = s;
95 }
96
97 /**
98 * Adds a hit to the collection of hits.
99 *
100 * @param hit a SearchHit instance
101 */
102 public void add(SearchHit hit) {
/*
P/P * Method: void add(SearchHit)
*
* Preconditions:
* this.hits != null
*/
103 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 public int getNumberOfHits() {
/*
P/P * Method: int getNumberOfHits()
*
* Preconditions:
* this.hits != null
*
* Postconditions:
* init'ed(return_value)
*/
112 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 public List getHits() {
/*
P/P * Method: List getHits()
*
* Preconditions:
* init'ed(this.hits)
*
* Postconditions:
* return_value == this.hits
* init'ed(return_value)
*/
121 return this.hits;
122 }
123
124 /**
125 * Sorts the search results by score, in reverse order.
126 */
127 public void sortByScoreDescending() {
/*
P/P * Method: void sortByScoreDescending()
*
* Preconditions:
* this.hits != null
*
* Presumptions:
* java.util.Iterator:next(...)@133 != null
*
* Test Vectors:
* java.util.Iterator:hasNext(...)@132: {1}, {0}
*/
128 Collections.sort(hits, new SearchHitByScoreComparator());
129
130 int number = 1;
131 Iterator it = hits.iterator();
132 while (it.hasNext()) {
133 SearchHit hit = (SearchHit)it.next();
134 hit.setNumber(number);
135 number++;
136 }
137 }
138
139 /**
140 * Sorts the search results by date, in reverse order.
141 */
142 public void sortByDateDescending() {
/*
P/P * Method: void sortByDateDescending()
*
* Preconditions:
* this.hits != null
*
* Presumptions:
* java.util.Iterator:next(...)@148 != null
*
* Test Vectors:
* java.util.Iterator:hasNext(...)@147: {1}, {0}
*/
143 Collections.sort(hits, new SearchHitByDateComparator());
144
145 int number = 1;
146 Iterator it = hits.iterator();
147 while (it.hasNext()) {
148 SearchHit hit = (SearchHit)it.next();
149 hit.setNumber(number);
150 number++;
151 }
152 }
153
154 }
SofCheck Inspector Build Version : 2.22510
| searchresults.java |
2010-Jun-25 19:40:32 |
| searchresults.class |
2010-Jul-19 20:23:38 |