Index: BooleanQuery.java
===================================================================
RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/search/BooleanQuery.java,v
retrieving revision 1.4
diff -u -r1.4 BooleanQuery.java
--- BooleanQuery.java	17 Jul 2002 17:38:04 -0000	1.4
+++ BooleanQuery.java	23 Oct 2002 21:20:57 -0000
@@ -57,12 +57,35 @@
 import java.io.IOException;
 import java.util.Vector;
 import org.apache.lucene.index.IndexReader;
+import java.util.*;
 
 /** A Query that matches documents matching boolean combinations of other
   queries, typically {@link TermQuery}s or {@link PhraseQuery}s.
   */
-public class BooleanQuery extends Query {
+public class BooleanQuery extends Query implements Cloneable {
   private Vector clauses = new Vector();
+
+  /**
+   * allows for iterating through the query elements
+   * @return an Iterator<BooleanClause>
+   */
+  public Iterator getClauses()
+  {
+      return clauses.iterator();
+  }
+
+  public Object clone()
+  {
+      BooleanQuery c = (BooleanQuery)super.clone();
+      c.clauses = new Vector();
+      for(Iterator it = getClauses(); it.hasNext(); )
+      {
+          BooleanClause q = ((BooleanClause)it.next());
+          c.add((BooleanClause)q.clone());
+      }
+      c.setBoost(getBoost());
+      return c;
+  }
 
   /** Constructs an empty boolean query. */
   public BooleanQuery() {}
