Clover Coverage Report
Coverage timestamp: Fri May 9 2008 10:54:27 EST
../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
9   61   5   3
4   23   0.56   3
3     1.67  
1    
 
  TopFieldDocCollector       Line # 31 9 5 93.8% 0.9375
 
  (24)
 
1    package org.apache.lucene.search;
2   
3    /**
4    * Copyright 2004 The Apache Software Foundation
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10    * http://www.apache.org/licenses/LICENSE-2.0
11    *
12    * Unless required by applicable law or agreed to in writing, software
13    * distributed under the License is distributed on an "AS IS" BASIS,
14    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15    * See the License for the specific language governing permissions and
16    * limitations under the License.
17    */
18   
19    import java.io.IOException;
20   
21    import org.apache.lucene.index.IndexReader;
22   
23    /** A {@link HitCollector} implementation that collects the top-sorting
24    * documents, returning them as a {@link TopFieldDocs}. This is used by {@link
25    * IndexSearcher} to implement {@link TopFieldDocs}-based search.
26    *
27    * <p>This may be extended, overriding the collect method to, e.g.,
28    * conditionally invoke <code>super()</code> in order to filter which
29    * documents are collected.
30    **/
 
31    public class TopFieldDocCollector extends TopDocCollector {
32   
33    /** Construct to collect a given number of hits.
34    * @param reader the index to be searched
35    * @param sort the sort criteria
36    * @param numHits the maximum number of hits to collect
37    */
 
38  2281 toggle public TopFieldDocCollector(IndexReader reader, Sort sort, int numHits)
39    throws IOException {
40  2281 super(numHits, new FieldSortedHitQueue(reader, sort.fields, numHits));
41    }
42   
43    // javadoc inherited
 
44  8043 toggle public void collect(int doc, float score) {
45  8043 if (score > 0.0f) {
46  8043 totalHits++;
47  8043 hq.insert(new FieldDoc(doc, score));
48    }
49    }
50   
51    // javadoc inherited
 
52  2281 toggle public TopDocs topDocs() {
53  2281 FieldSortedHitQueue fshq = (FieldSortedHitQueue)hq;
54  2281 ScoreDoc[] scoreDocs = new ScoreDoc[fshq.size()];
55  9236 for (int i = fshq.size()-1; i >= 0; i--) // put docs in array
56  6955 scoreDocs[i] = fshq.fillFields ((FieldDoc) fshq.pop());
57   
58  2281 return new TopFieldDocs(totalHits, scoreDocs,
59    fshq.getFields(), fshq.getMaxScore());
60    }
61    }