forked from douglascraigschmidt/LiveLessons
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSearchResults.java
More file actions
124 lines (109 loc) · 2.57 KB
/
SearchResults.java
File metadata and controls
124 lines (109 loc) · 2.57 KB
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
115
116
117
118
119
120
121
122
123
import java.util.ArrayList;
import java.util.List;
/**
* @class SearchResults
*
* @brief Holds the search results.
*/
public class SearchResults {
/**
* @class SearchResult
*
* @brief Holds one search result.
*/
public class Result {
/**
* The index in the search String where the word that was
* found.
*/
public int mIndex;
/**
* Create a Result object contains meta-data about a search
* result..
*/
public Result(int index) {
mIndex = index;
}
}
/**
* Id of the Thread that found a search result.
*/
public long mThreadId;
/**
* The word that was found.
*/
public String mWord;
/**
* The input String used for the search.
*/
public String mInputData;
/**
* The cycle in which the search result was found.
*/
public long mCycle;
/**
* The List of Result objects that matched the @code mWord.
*/
protected List<Result> mList;
/**
* Create an empty SearchResults, which is used to shutdown
* processing of the BlockingQueue.
*/
public SearchResults() {
mList = null;
}
/**
* Create a SearchResults with values for the various fields.
*/
public SearchResults(long threadId,
long cycle,
String word,
String inputData) {
mThreadId = threadId;
mCycle = cycle;
mWord = word;
mInputData = inputData;
mList = new ArrayList<Result>();
}
/**
* Convert to String form.
*/
public String toString() {
return
"["
+ mThreadId
+ "|"
+ mCycle
+ "] "
+ mWord
+ " at "
+ mInputData;
}
/**
* Add a Result.
*/
public void add(int index) {
mList.add(new Result(index));
}
/**
* Returns true if there are no search results.
*/
public boolean isEmpty() {
return mList.size() == 0;
}
/**
* Print the results.
*/
void print() {
if (!isEmpty()) {
System.out.print(toString());
// Iterate through the list of indices that matched the
// search word and print them out.
for (Result result : mList)
System.out.print ("["
+ result.mIndex
+ "]");
System.out.println("");
}
}
}