| Index: src/java/org/apache/lucene/search/BooleanQuery.java |
| =================================================================== |
| --- src/java/org/apache/lucene/search/BooleanQuery.java (revision 826188) |
| +++ src/java/org/apache/lucene/search/BooleanQuery.java (working copy) |
| @@ -62,7 +62,7 @@ |
| BooleanQuery.maxClauseCount = maxClauseCount; |
| } |
| |
| - private ArrayList clauses = new ArrayList(); |
| + private ArrayList<BooleanClause> clauses = new ArrayList<BooleanClause>(); |
| private boolean disableCoord; |
| |
| /** Constructs an empty boolean query. */ |
| @@ -158,11 +158,11 @@ |
| |
| /** Returns the set of clauses in this query. */ |
| public BooleanClause[] getClauses() { |
| - return (BooleanClause[])clauses.toArray(new BooleanClause[clauses.size()]); |
| + return clauses.toArray(new BooleanClause[clauses.size()]); |
| } |
| |
| /** Returns the list of clauses in this query. */ |
| - public List clauses() { return clauses; } |
| + public List<BooleanClause> clauses() { return clauses; } |
| |
| /** |
| * Expert: the Weight for BooleanQuery, used to |
| @@ -174,12 +174,12 @@ |
| protected class BooleanWeight extends Weight { |
| /** The Similarity implementation. */ |
| protected Similarity similarity; |
| - protected ArrayList weights; |
| + protected ArrayList<Weight> weights; |
| |
| public BooleanWeight(Searcher searcher) |
| throws IOException { |
| this.similarity = getSimilarity(searcher); |
| - weights = new ArrayList(clauses.size()); |
| + weights = new ArrayList<Weight>(clauses.size()); |
| for (int i = 0 ; i < clauses.size(); i++) { |
| BooleanClause c = (BooleanClause)clauses.get(i); |
| weights.add(c.getQuery().createWeight(searcher)); |
| @@ -209,8 +209,7 @@ |
| |
| public void normalize(float norm) { |
| norm *= getBoost(); // incorporate boost |
| - for (Iterator iter = weights.iterator(); iter.hasNext();) { |
| - Weight w = (Weight) iter.next(); |
| + for (Weight w : weights) { |
| // normalize all clauses, (even if prohibited in case of side affects) |
| w.normalize(norm); |
| } |
| @@ -227,9 +226,10 @@ |
| float sum = 0.0f; |
| boolean fail = false; |
| int shouldMatchCount = 0; |
| - for (Iterator wIter = weights.iterator(), cIter = clauses.iterator(); wIter.hasNext();) { |
| - Weight w = (Weight) wIter.next(); |
| - BooleanClause c = (BooleanClause) cIter.next(); |
| + Iterator<BooleanClause> cIter = clauses.iterator(); |
| + for (Iterator<Weight> wIter = weights.iterator(); wIter.hasNext();) { |
| + Weight w = wIter.next(); |
| + BooleanClause c = cIter.next(); |
| if (w.scorer(reader, true, true) == null) { |
| continue; |
| } |
| @@ -289,12 +289,12 @@ |
| |
| public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) |
| throws IOException { |
| - List required = new ArrayList(); |
| - List prohibited = new ArrayList(); |
| - List optional = new ArrayList(); |
| - for (Iterator wIter = weights.iterator(), cIter = clauses.iterator(); wIter.hasNext();) { |
| - Weight w = (Weight) wIter.next(); |
| - BooleanClause c = (BooleanClause) cIter.next(); |
| + List<Scorer> required = new ArrayList<Scorer>(); |
| + List<Scorer> prohibited = new ArrayList<Scorer>(); |
| + List<Scorer> optional = new ArrayList<Scorer>(); |
| + Iterator<BooleanClause> cIter = clauses.iterator(); |
| + for (Weight w : weights) { |
| + BooleanClause c = cIter.next(); |
| Scorer subScorer = w.scorer(reader, true, false); |
| if (subScorer == null) { |
| if (c.isRequired()) { |
| @@ -330,8 +330,7 @@ |
| |
| public boolean scoresDocsOutOfOrder() { |
| int numProhibited = 0; |
| - for (Iterator cIter = clauses.iterator(); cIter.hasNext();) { |
| - BooleanClause c = (BooleanClause) cIter.next(); |
| + for (BooleanClause c : clauses) { |
| if (c.isRequired()) { |
| return false; // BS2 (in-order) will be used by scorer() |
| } else if (c.isProhibited()) { |
| @@ -372,7 +371,7 @@ |
| |
| BooleanQuery clone = null; // recursively rewrite |
| for (int i = 0 ; i < clauses.size(); i++) { |
| - BooleanClause c = (BooleanClause)clauses.get(i); |
| + BooleanClause c = clauses.get(i); |
| Query query = c.getQuery().rewrite(reader); |
| if (query != c.getQuery()) { // clause rewrote: must clone |
| if (clone == null) |
| @@ -388,15 +387,14 @@ |
| |
| // inherit javadoc |
| public void extractTerms(Set<Term> terms) { |
| - for (Iterator i = clauses.iterator(); i.hasNext();) { |
| - BooleanClause clause = (BooleanClause) i.next(); |
| + for (BooleanClause clause : clauses) { |
| clause.getQuery().extractTerms(terms); |
| } |
| } |
| |
| public Object clone() { |
| BooleanQuery clone = (BooleanQuery)super.clone(); |
| - clone.clauses = (ArrayList)this.clauses.clone(); |
| + clone.clauses = (ArrayList<BooleanClause>)this.clauses.clone(); |
| return clone; |
| } |
| |
| @@ -409,7 +407,7 @@ |
| } |
| |
| for (int i = 0 ; i < clauses.size(); i++) { |
| - BooleanClause c = (BooleanClause)clauses.get(i); |
| + BooleanClause c = clauses.get(i); |
| if (c.isProhibited()) |
| buffer.append("-"); |
| else if (c.isRequired()) |