You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2013/01/08 04:40:37 UTC

svn commit: r1430130 [11/27] - in /lucene/dev/branches/lucene4547: ./ dev-tools/ dev-tools/eclipse/ dev-tools/idea/.idea/libraries/ dev-tools/maven/ dev-tools/maven/solr/ dev-tools/maven/solr/contrib/analysis-extras/ dev-tools/maven/solr/contrib/cluste...

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/LruTaxonomyWriterCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/LruTaxonomyWriterCache.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/LruTaxonomyWriterCache.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/LruTaxonomyWriterCache.java Tue Jan  8 03:40:16 2013
@@ -87,23 +87,6 @@ public class LruTaxonomyWriterCache impl
   }
 
   @Override
-  public synchronized int get(CategoryPath categoryPath, int length) {
-    if (length<0 || length>categoryPath.length()) {
-      length = categoryPath.length();
-    }
-    // TODO (Facet): unfortunately, we make a copy here! we can avoid part of
-    // the copy by creating a wrapper object (but this still creates a new
-    // object). A better implementation of the cache would not use Java's
-    // hash table, but rather some other hash table we can control, and
-    // pass the length parameter into it...
-    Integer res = cache.get(new CategoryPath(categoryPath, length));
-    if (res==null) {
-      return -1;
-    }
-    return res.intValue();
-  }
-
-  @Override
   public synchronized boolean put(CategoryPath categoryPath, int ordinal) {
     boolean ret = cache.put(categoryPath, new Integer(ordinal));
     // If the cache is full, we need to clear one or more old entries
@@ -119,20 +102,4 @@ public class LruTaxonomyWriterCache impl
     return ret;
   }
 
-  @Override
-  public synchronized boolean put(CategoryPath categoryPath, int prefixLen, int ordinal) {
-    boolean ret = cache.put(categoryPath, prefixLen, new Integer(ordinal));
-    // If the cache is full, we need to clear one or more old entries
-    // from the cache. However, if we delete from the cache a recent
-    // addition that isn't yet in our reader, for this entry to be
-    // visible to us we need to make sure that the changes have been
-    // committed and we reopen the reader. Because this is a slow
-    // operation, we don't delete entries one-by-one but rather in bulk
-    // (put() removes the 2/3rd oldest entries).
-    if (ret) { 
-      cache.makeRoomLRU(); 
-    }
-    return ret;
-  }
-
 }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameHashIntCacheLRU.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameHashIntCacheLRU.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameHashIntCacheLRU.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameHashIntCacheLRU.java Tue Jan  8 03:40:16 2013
@@ -41,6 +41,7 @@ public class NameHashIntCacheLRU extends
 
   @Override
   Object key(CategoryPath name, int prefixLen) {
-    return new Long(name.longHashCode(prefixLen));
+    return new Long(name.subpath(prefixLen).longHashCode());
   }
+  
 }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameIntCacheLRU.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameIntCacheLRU.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameIntCacheLRU.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/writercache/lru/NameIntCacheLRU.java Tue Jan  8 03:40:16 2013
@@ -68,23 +68,13 @@ class NameIntCacheLRU {
     return res;
   }
 
-  /**
-   * Subclasses can override this to provide caching by e.g. hash of the string.
-   */
+  /** Subclasses can override this to provide caching by e.g. hash of the string. */
   Object key(CategoryPath name) {
-    // Note that a copy constructor (cloning) here is necessary, because a
-    // CategoryPath object is mutable, so we cannot save a reference to an
-    // existing CategoryPath. Subclasses which override this method can
-    // avoid this cloning by, e.g., hashing the name.
-    return new CategoryPath(name);
+    return name;
   }
 
   Object key(CategoryPath name, int prefixLen) {
-    // Note that a copy constructor (cloning) here is necessary, because a
-    // CategoryPath object is mutable, so we cannot save a reference to an
-    // existing CategoryPath. Subclasses which override this method can
-    // avoid this cloning by, e.g., hashing the name.
-    return new CategoryPath(name, prefixLen);
+    return name.subpath(prefixLen);
   }
 
   /**

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/MultiCategoryListIterator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/MultiCategoryListIterator.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/MultiCategoryListIterator.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/MultiCategoryListIterator.java Tue Jan  8 03:40:16 2013
@@ -43,6 +43,7 @@ public class MultiCategoryListIterator i
   }
 
   /** Fails if all given iterators fail to init */
+  @Override
   public boolean init() throws IOException {
     for (CategoryListIterator cli : iterators) {
       if (cli.init()) {
@@ -56,6 +57,7 @@ public class MultiCategoryListIterator i
    * Return a value larger than {@link Integer#MAX_VALUE} only if all
    * iterators are exhausted
    */
+  @Override
   public long nextCategory() throws IOException {
     while (!perDocValidIterators.isEmpty()) {
       long value = perDocValidIterators.get(0).nextCategory();
@@ -70,6 +72,7 @@ public class MultiCategoryListIterator i
   /**
    * Fails only if skipTo on all the provided iterators returned {@code false}
    */
+  @Override
   public boolean skipTo(int docId) throws IOException {
     perDocValidIterators.clear();
     for (CategoryListIterator cli : validIterators) {

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/PartitionsUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/PartitionsUtils.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/PartitionsUtils.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/PartitionsUtils.java Tue Jan  8 03:40:16 2013
@@ -2,7 +2,6 @@ package org.apache.lucene.facet.util;
 
 import org.apache.lucene.facet.index.params.CategoryListParams;
 import org.apache.lucene.facet.index.params.FacetIndexingParams;
-import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.taxonomy.TaxonomyReader;
 
 /*
@@ -33,22 +32,12 @@ public final class PartitionsUtils {
    * Get the offset for a given partition.  That is, what is the minimum number an
    * ordinal could be for a particular partition. 
    */
-  public final static int partitionOffset (  FacetIndexingParams iParams, 
-                        int partitionNumber, 
-                        final TaxonomyReader taxonomyReader) {
+  public final static int partitionOffset(FacetIndexingParams iParams,
+      int partitionNumber, final TaxonomyReader taxonomyReader) {
     return partitionNumber * partitionSize(iParams, taxonomyReader);
   }
 
   /**
-   * @see #partitionOffset(FacetIndexingParams, int, TaxonomyReader)
-   */
-  public final static int partitionOffset (  FacetSearchParams sParams, 
-                        int partitionNumber, 
-                        final TaxonomyReader taxonomyReader) {
-    return partitionOffset(sParams.getFacetIndexingParams(), partitionNumber, taxonomyReader);
-  }
-
-  /**
    * Get the partition size in this parameter, or return the size of the taxonomy, which
    * is smaller.  (Guarantees usage of as little memory as possible at search time).
    */
@@ -57,13 +46,6 @@ public final class PartitionsUtils {
   }
 
   /**
-   * @see #partitionSize(FacetIndexingParams, TaxonomyReader)
-   */
-  public final static int partitionSize(FacetSearchParams sParams, final TaxonomyReader taxonomyReader) {
-    return partitionSize(sParams.getFacetIndexingParams(), taxonomyReader);
-  }
-
-  /**
    * Partition number of an ordinal.
    * <p>
    * This allows to locate the partition containing a certain (facet) ordinal.
@@ -74,19 +56,11 @@ public final class PartitionsUtils {
   }
 
   /**
-   * @see #partitionNumber(FacetIndexingParams, int)
-   */
-  public final static int partitionNumber(FacetSearchParams sParams, int ordinal) {
-    return partitionNumber(sParams.getFacetIndexingParams(), ordinal);
-  }
-
-  /**
    * Partition name by category ordinal
    */
-  public final static String partitionNameByOrdinal(  FacetIndexingParams iParams, 
-                            CategoryListParams clParams, 
-                            int ordinal) {
-    int partition = partitionNumber(iParams, ordinal); 
+  public final static String partitionNameByOrdinal(
+      FacetIndexingParams iParams, CategoryListParams clParams, int ordinal) {
+    int partition = partitionNumber(iParams, ordinal);
     return partitionName(clParams, partition);
   }
 

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ResultSortUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ResultSortUtils.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ResultSortUtils.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ResultSortUtils.java Tue Jan  8 03:40:16 2013
@@ -144,14 +144,17 @@ public class ResultSortUtils {
       this.accending = accending;
     }
 
+    @Override
     public FacetResultNode insertWithOverflow(FacetResultNode node) {
       resultNodes.add(node);
       return null;
     }
 
+    @Override
     public FacetResultNode pop() {
       if (!isReady) {
         Collections.sort(resultNodes, new Comparator<FacetResultNode>() {
+          @Override
           public int compare(FacetResultNode o1, FacetResultNode o2) {
             int value = Double.compare(o1.getValue(), o2
                 .getValue());
@@ -170,10 +173,12 @@ public class ResultSortUtils {
       return resultNodes.remove(0);
     }
 
+    @Override
     public int size() {
       return resultNodes.size();
     }
 
+    @Override
     public FacetResultNode top() {
       if (resultNodes.size() > 0) {
         return resultNodes.get(0);
@@ -182,11 +187,13 @@ public class ResultSortUtils {
       return null;
     }
 
+    @Override
     public FacetResultNode add(FacetResultNode frn) {
       resultNodes.add(frn);
       return null;
     }
 
+    @Override
     public void clear() {
       resultNodes.clear();
     }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ScoredDocIdsUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ScoredDocIdsUtils.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ScoredDocIdsUtils.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/facet/util/ScoredDocIdsUtils.java Tue Jan  8 03:40:16 2013
@@ -118,6 +118,7 @@ public class ScoredDocIdsUtils {
 
     return new ScoredDocIDs() {
 
+      @Override
       public DocIdSet getDocIDs() {
         return new DocIdSet() {
 
@@ -155,19 +156,24 @@ public class ScoredDocIdsUtils {
         };
       }
 
+      @Override
       public ScoredDocIDsIterator iterator() {
         return new ScoredDocIDsIterator() {
 
           int next = -1;
 
+          @Override
           public boolean next() { return ++next < size; }
 
+          @Override
           public float getScore() { return scores[next]; }
 
+          @Override
           public int getDocID() { return docids[next]; }
         };
       }
 
+      @Override
       public int size() { return size; }
 
     };
@@ -191,11 +197,14 @@ public class ScoredDocIdsUtils {
   public static final ScoredDocIDs createScoredDocIds(final DocIdSet docIdSet, final int maxDoc) {
     return new ScoredDocIDs() {
       private int size = -1;
+      @Override
       public DocIdSet getDocIDs() { return docIdSet; }
 
+      @Override
       public ScoredDocIDsIterator iterator() throws IOException {
         final DocIdSetIterator docIterator = docIdSet.iterator();
         return new ScoredDocIDsIterator() {
+          @Override
           public boolean next() {
             try {
               return docIterator.nextDoc() != DocIdSetIterator.NO_MORE_DOCS;
@@ -204,12 +213,15 @@ public class ScoredDocIdsUtils {
             }
           }
 
+          @Override
           public float getScore() { return DEFAULT_SCORE; }
 
+          @Override
           public int getDocID() { return docIterator.docID(); }
         };
       }
 
+      @Override
       public int size() {
         // lazy size computation
         if (size < 0) {
@@ -238,10 +250,12 @@ public class ScoredDocIdsUtils {
       this.maxDoc = reader.maxDoc();
     }
 
+    @Override
     public int size() {  
       return maxDoc;
     }
 
+    @Override
     public DocIdSet getDocIDs() {
       return new DocIdSet() {
 
@@ -279,10 +293,12 @@ public class ScoredDocIdsUtils {
       };
     }
 
+    @Override
     public ScoredDocIDsIterator iterator() {
       try {
         final DocIdSetIterator iter = getDocIDs().iterator();
         return new ScoredDocIDsIterator() {
+          @Override
           public boolean next() {
             try {
               return iter.nextDoc() != DocIdSetIterator.NO_MORE_DOCS;
@@ -292,10 +308,12 @@ public class ScoredDocIdsUtils {
             }
           }
 
+          @Override
           public float getScore() {
             return DEFAULT_SCORE;
           }
 
+          @Override
           public int getDocID() {
             return iter.docID();
           }
@@ -324,10 +342,12 @@ public class ScoredDocIdsUtils {
       this.reader = reader;
     }
 
+    @Override
     public int size() {
       return reader.numDocs();
     }
 
+    @Override
     public DocIdSet getDocIDs() {
       return new DocIdSet() {
 
@@ -369,10 +389,12 @@ public class ScoredDocIdsUtils {
       };
     }
 
+    @Override
     public ScoredDocIDsIterator iterator() {
       try {
         final DocIdSetIterator iter = getDocIDs().iterator();
         return new ScoredDocIDsIterator() {
+          @Override
           public boolean next() {
             try {
               return iter.nextDoc() != DocIdSetIterator.NO_MORE_DOCS;
@@ -382,10 +404,12 @@ public class ScoredDocIdsUtils {
             }
           }
 
+          @Override
           public float getScore() {
             return DEFAULT_SCORE;
           }
 
+          @Override
           public int getDocID() {
             return iter.docID();
           }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ArrayHashMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ArrayHashMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ArrayHashMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ArrayHashMap.java Tue Jan  8 03:40:16 2013
@@ -65,10 +65,12 @@ public class ArrayHashMap<K,V> implement
       }
     }
 
+    @Override
     public boolean hasNext() {
       return index != 0;
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -86,6 +88,7 @@ public class ArrayHashMap<K,V> implement
       return lastIndex;
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public void remove() {
       ArrayHashMap.this.remove((K) keys[lastIndex]);
@@ -99,15 +102,18 @@ public class ArrayHashMap<K,V> implement
 
     KeyIterator() { }
 
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public K next() {
       return (K) keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -119,15 +125,18 @@ public class ArrayHashMap<K,V> implement
 
     ValueIterator() { }
 
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public V next() {
       return (V) values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -378,6 +387,7 @@ public class ArrayHashMap<K,V> implement
   }
 
   /** Returns an iterator on the mapped objects. */
+  @Override
   public Iterator<V> iterator() {
     return new ValueIterator();
   }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/FloatToObjectMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/FloatToObjectMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/FloatToObjectMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/FloatToObjectMap.java Tue Jan  8 03:40:16 2013
@@ -73,10 +73,12 @@ public class FloatToObjectMap<T> impleme
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -94,6 +96,7 @@ public class FloatToObjectMap<T> impleme
       return lastIndex;
     }
 
+    @Override
     public void remove() {
       FloatToObjectMap.this.remove(keys[lastIndex]);
     }
@@ -108,14 +111,17 @@ public class FloatToObjectMap<T> impleme
 
     KeyIterator() { }
 
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public float next() {
       return keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -130,15 +136,18 @@ public class FloatToObjectMap<T> impleme
 
     ValueIterator() { }
 
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public T next() {
       return (T) values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -445,6 +454,7 @@ public class FloatToObjectMap<T> impleme
   /**
    * Returns a new iterator for the mapped objects.
    */
+  @Override
   public Iterator<T> iterator() {
     return new ValueIterator();
   }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntHashSet.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntHashSet.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntHashSet.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntHashSet.java Tue Jan  8 03:40:16 2013
@@ -64,10 +64,12 @@ public class IntHashSet {
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -85,6 +87,7 @@ public class IntHashSet {
       return lastIndex;
     }
 
+    @Override
     public void remove() {
       IntHashSet.this.remove(keys[lastIndex]);
     }
@@ -99,14 +102,17 @@ public class IntHashSet {
 
     KeyIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public int next() {
       return keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToDoubleMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToDoubleMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToDoubleMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToDoubleMap.java Tue Jan  8 03:40:16 2013
@@ -72,10 +72,12 @@ public class IntToDoubleMap {
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -93,6 +95,7 @@ public class IntToDoubleMap {
       return lastIndex;
     }
 
+    @Override
     public void remove() {
       IntToDoubleMap.this.remove(keys[lastIndex]);
     }
@@ -107,14 +110,17 @@ public class IntToDoubleMap {
 
     KeyIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public int next() {
       return keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -129,14 +135,17 @@ public class IntToDoubleMap {
 
     ValueIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public double next() {
       return values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToIntMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToIntMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToIntMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToIntMap.java Tue Jan  8 03:40:16 2013
@@ -71,10 +71,12 @@ public class IntToIntMap {
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -92,6 +94,7 @@ public class IntToIntMap {
       return lastIndex;
     }
 
+    @Override
     public void remove() {
       IntToIntMap.this.remove(keys[lastIndex]);
     }
@@ -106,14 +109,17 @@ public class IntToIntMap {
 
     KeyIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public int next() {
       return keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -127,14 +133,17 @@ public class IntToIntMap {
 
     ValueIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public int next() {
       return values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToObjectMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToObjectMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToObjectMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/IntToObjectMap.java Tue Jan  8 03:40:16 2013
@@ -72,10 +72,12 @@ public class IntToObjectMap<T> implement
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -93,6 +95,7 @@ public class IntToObjectMap<T> implement
       return lastIndex;
     }
 
+    @Override
     public void remove() {
       IntToObjectMap.this.remove(keys[lastIndex]);
     }
@@ -107,14 +110,17 @@ public class IntToObjectMap<T> implement
 
     KeyIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public int next() {
       return keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -129,15 +135,18 @@ public class IntToObjectMap<T> implement
 
     ValueIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public T next() {
       return (T) values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -445,6 +454,7 @@ public class IntToObjectMap<T> implement
   /**
    * Returns a new iterator for the mapped objects.
    */
+  @Override
   public Iterator<T> iterator() {
     return new ValueIterator();
   }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToFloatMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToFloatMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToFloatMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToFloatMap.java Tue Jan  8 03:40:16 2013
@@ -72,10 +72,12 @@ public class ObjectToFloatMap<K> {
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -93,6 +95,7 @@ public class ObjectToFloatMap<K> {
       return lastIndex;
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public void remove() {
       ObjectToFloatMap.this.remove((K) keys[lastIndex]);
@@ -108,15 +111,18 @@ public class ObjectToFloatMap<K> {
 
     KeyIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public K next() {
       return (K) keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -131,14 +137,17 @@ public class ObjectToFloatMap<K> {
 
     ValueIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public float next() {
       return values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToIntMap.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToIntMap.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToIntMap.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/collections/ObjectToIntMap.java Tue Jan  8 03:40:16 2013
@@ -72,10 +72,12 @@ public class ObjectToIntMap<K> {
       }
     }
 
+    @Override
     public boolean hasNext() {
       return (index != 0);
     }
 
+    @Override
     public int next() {
       // Save the last index visited
       lastIndex = index;
@@ -93,6 +95,7 @@ public class ObjectToIntMap<K> {
       return lastIndex;
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public void remove() {
       ObjectToIntMap.this.remove((K) keys[lastIndex]);
@@ -108,15 +111,18 @@ public class ObjectToIntMap<K> {
 
     KeyIterator() { }
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public K next() {
       return (K) keys[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }
@@ -131,14 +137,17 @@ public class ObjectToIntMap<K> {
 
     ValueIterator() {}
     
+    @Override
     public boolean hasNext() {
       return iterator.hasNext();
     }
 
+    @Override
     public int next() {
       return values[iterator.next()];
     }
 
+    @Override
     public void remove() {
       iterator.remove();
     }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/encoding/IntEncoder.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/encoding/IntEncoder.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/encoding/IntEncoder.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/java/org/apache/lucene/util/encoding/IntEncoder.java Tue Jan  8 03:40:16 2013
@@ -1,5 +1,6 @@
 package org.apache.lucene.util.encoding;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.io.OutputStream;
 
@@ -43,7 +44,7 @@ import java.io.OutputStream;
  * 
  * @lucene.experimental
  */
-public abstract class IntEncoder {
+public abstract class IntEncoder implements Closeable {
 
   protected OutputStream out = null;
 
@@ -68,6 +69,7 @@ public abstract class IntEncoder {
    * <b>NOTE:</b> overriding classes should make sure they either call
    * <code>super.close()</code> or close the output stream themselves.
    */
+  @Override
   public void close() throws IOException {
     if (out != null) {
       out.close();

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestBase.java Tue Jan  8 03:40:16 2013
@@ -15,6 +15,18 @@ import org.apache.lucene.analysis.MockTo
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.facet.index.FacetFields;
+import org.apache.lucene.facet.index.params.CategoryListParams;
+import org.apache.lucene.facet.index.params.FacetIndexingParams;
+import org.apache.lucene.facet.search.params.FacetRequest;
+import org.apache.lucene.facet.search.params.FacetSearchParams;
+import org.apache.lucene.facet.search.results.FacetResult;
+import org.apache.lucene.facet.search.results.FacetResultNode;
+import org.apache.lucene.facet.taxonomy.CategoryPath;
+import org.apache.lucene.facet.taxonomy.TaxonomyReader;
+import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
+import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
@@ -28,24 +40,10 @@ import org.apache.lucene.index.TermsEnum
 import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.Directory;
-
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
-import org.apache.lucene.facet.index.params.CategoryListParams;
-import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
-import org.apache.lucene.facet.index.params.FacetIndexingParams;
-import org.apache.lucene.facet.search.params.FacetRequest;
-import org.apache.lucene.facet.search.params.FacetSearchParams;
-import org.apache.lucene.facet.search.results.FacetResult;
-import org.apache.lucene.facet.search.results.FacetResultNode;
-import org.apache.lucene.facet.taxonomy.CategoryPath;
-import org.apache.lucene.facet.taxonomy.TaxonomyReader;
-import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
-import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 
@@ -184,29 +182,28 @@ public abstract class FacetTestBase exte
 
   /** Returns a default facet indexing params */
   protected FacetIndexingParams getFacetIndexingParams(final int partSize) {
-    return new DefaultFacetIndexingParams() {
+    return new FacetIndexingParams() {
       @Override
-      protected int fixedPartitionSize() {
+      public int getPartitionSize() {
         return partSize;
       }
     };
   }
   
   /**
-   * Faceted Search Params for the test.
-   * Sub classes should override in order to test with different faceted search params.
+   * Faceted Search Params for the test. Sub classes should override in order to
+   * test with different faceted search params.
    */
-  protected FacetSearchParams getFacetedSearchParams() {
-    return getFacetedSearchParams(Integer.MAX_VALUE);
+  protected FacetSearchParams getFacetSearchParams(FacetIndexingParams iParams, FacetRequest... facetRequests) {
+    return new FacetSearchParams(Arrays.asList(facetRequests), iParams);
   }
 
   /**
-   * Faceted Search Params with specified partition size.
-   * @see #getFacetedSearchParams()
+   * Faceted Search Params for the test. Sub classes should override in order to
+   * test with different faceted search params.
    */
-  protected FacetSearchParams getFacetedSearchParams(int partitionSize) {
-    FacetSearchParams res = new FacetSearchParams(getFacetIndexingParams(partitionSize));
-    return res; 
+  protected FacetSearchParams getFacetSearchParams(List<FacetRequest> facetRequests, FacetIndexingParams iParams) {
+    return new FacetSearchParams(facetRequests, iParams);
   }
 
   /**
@@ -258,9 +255,8 @@ public abstract class FacetTestBase exte
   protected final void indexDoc(FacetIndexingParams iParams, RandomIndexWriter iw,
       TaxonomyWriter tw, String content, List<CategoryPath> categories) throws IOException {
     Document d = new Document();
-    CategoryDocumentBuilder builder = new CategoryDocumentBuilder(tw, iParams);
-    builder.setCategoryPaths(categories);
-    builder.build(d);
+    FacetFields facetFields = new FacetFields(tw, iParams);
+    facetFields.addFields(d, categories);
     d.add(new TextField("content", content, Field.Store.YES));
     iw.addDocument(d);
   }
@@ -284,7 +280,7 @@ public abstract class FacetTestBase exte
       TermsEnum te = terms.iterator(null);
       DocsEnum de = null;
       while (te.next() != null) {
-        de = _TestUtil.docs(random(), te, liveDocs, de, 0);
+        de = _TestUtil.docs(random(), te, liveDocs, de, DocsEnum.FLAG_NONE);
         int cnt = 0;
         while (de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
           cnt++;

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/FacetTestUtils.java Tue Jan  8 03:40:16 2013
@@ -2,26 +2,14 @@ package org.apache.lucene.facet;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 
 import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.DirectoryReader;
-import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.IndexWriterConfig;
-import org.apache.lucene.index.RandomIndexWriter;
-import org.apache.lucene.search.Collector;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.MatchAllDocsQuery;
-import org.apache.lucene.search.TopScoreDocCollector;
-import org.apache.lucene.store.Directory;
-
-import org.apache.lucene.search.MultiCollector;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
-import org.apache.lucene.facet.index.params.DefaultFacetIndexingParams;
+import org.apache.lucene.facet.index.FacetFields;
 import org.apache.lucene.facet.index.params.FacetIndexingParams;
 import org.apache.lucene.facet.search.FacetsCollector;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
@@ -32,6 +20,17 @@ import org.apache.lucene.facet.taxonomy.
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyWriter;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexWriter;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.search.Collector;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.MatchAllDocsQuery;
+import org.apache.lucene.search.MultiCollector;
+import org.apache.lucene.search.TopScoreDocCollector;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -91,19 +90,18 @@ public class FacetTestUtils {
   }
 
   public static Collector[] search(IndexSearcher searcher,
-      TaxonomyReader taxonomyReader, DefaultFacetIndexingParams iParams,
-      int k, String... facetNames) throws IOException {
+      TaxonomyReader taxonomyReader, FacetIndexingParams iParams, int k,
+      String... facetNames) throws IOException {
     
     Collector[] collectors = new Collector[2];
     
-    FacetSearchParams facetSearchParams = new FacetSearchParams(iParams);
-    Collection<FacetRequest> fRequests = new ArrayList<FacetRequest>();
+    List<FacetRequest> fRequests = new ArrayList<FacetRequest>();
     for (String facetName : facetNames) {
       CategoryPath cp = new CategoryPath(facetName);
       FacetRequest fq = new CountFacetRequest(cp, k);
-      facetSearchParams.addFacetRequest(fq);
       fRequests.add(fq);
     }
+    FacetSearchParams facetSearchParams = new FacetSearchParams(fRequests, iParams);
 
     TopScoreDocCollector topDocsCollector = TopScoreDocCollector.create(
         searcher.getIndexReader().maxDoc(), true);
@@ -120,11 +118,9 @@ public class FacetTestUtils {
   
   public static void add(FacetIndexingParams iParams, RandomIndexWriter iw,
       TaxonomyWriter tw, String... strings) throws IOException {
-    ArrayList<CategoryPath> cps = new ArrayList<CategoryPath>();
-    CategoryPath cp = new CategoryPath(strings);
-    cps.add(cp);
     Document d = new Document();
-    new CategoryDocumentBuilder(tw, iParams).setCategoryPaths(cps).build(d);
+    FacetFields facetFields = new FacetFields(tw, iParams);
+    facetFields.addFields(d, Collections.singletonList(new CategoryPath(strings)));
     d.add(new TextField("content", "alpha", Field.Store.YES));
     iw.addDocument(d);
   }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/example/TestSimpleExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/example/TestSimpleExample.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/example/TestSimpleExample.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/example/TestSimpleExample.java Tue Jan  8 03:40:16 2013
@@ -34,7 +34,7 @@ import org.apache.lucene.facet.search.re
 public class TestSimpleExample extends LuceneTestCase {
 
   @Test
-  public void testSimple () throws Exception {
+  public void testSimple() throws Exception {
     ExampleResult res = new SimpleMain().runSimple();
     assertNotNull("Null result!", res);
     assertNotNull("Null facet result!", res.getFacetResults());
@@ -47,7 +47,7 @@ public class TestSimpleExample extends L
    * As result, facets that without drill down got count of 2 will now get a count of 1. 
    */
   @Test
-  public void testDrillDown () throws Exception {
+  public void testDrillDown() throws Exception {
     ExampleResult res = new SimpleMain().runDrillDown();
     assertNotNull("Null result!", res);
     assertNotNull("Null facet result!", res.getFacetResults());

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/OrdinalPolicyTest.java Tue Jan  8 03:40:16 2013
@@ -31,12 +31,10 @@ public class OrdinalPolicyTest extends L
   public void testDefaultOrdinalPolicy() {
     // check ordinal policy
     OrdinalPolicy ordinalPolicy = OrdinalPolicy.ALL_PARENTS;
-    assertFalse("default ordinal policy should not match root", ordinalPolicy
-        .shouldAdd(TaxonomyReader.ROOT_ORDINAL));
+    assertFalse("default ordinal policy should not match root", ordinalPolicy.shouldAdd(TaxonomyReader.ROOT_ORDINAL));
     for (int i = 0; i < 300; i++) {
       int ordinal = 1 + random().nextInt(Integer.MAX_VALUE - 1);
-      assertTrue("default ordinal policy should match " + ordinal,
-          ordinalPolicy.shouldAdd(ordinal));
+      assertTrue("default ordinal policy should match " + ordinal, ordinalPolicy.shouldAdd(ordinal));
     }
   }
 
@@ -50,8 +48,7 @@ public class OrdinalPolicyTest extends L
     String[] topLevelStrings = new String[10];
     for (int i = 0; i < 10; i++) {
       topLevelStrings[i] = Integer.valueOf(random().nextInt(30)).toString();
-      topLevelOrdinals[i] = taxonomy.addCategory(new CategoryPath(
-          topLevelStrings[i]));
+      topLevelOrdinals[i] = taxonomy.addCategory(new CategoryPath(topLevelStrings[i]));
     }
     int[] nonTopLevelOrdinals = new int[300];
     for (int i = 0; i < 300; i++) {
@@ -61,22 +58,18 @@ public class OrdinalPolicyTest extends L
       for (int j = 1; j < components.length; j++) {
         components[j] = (Integer.valueOf(random().nextInt(30))).toString();
       }
-      nonTopLevelOrdinals[i] = taxonomy.addCategory(new CategoryPath(
-          components));
+      nonTopLevelOrdinals[i] = taxonomy.addCategory(new CategoryPath(components));
     }
     // check ordinal policy
     OrdinalPolicy ordinalPolicy = new NonTopLevelOrdinalPolicy();
     ordinalPolicy.init(taxonomy);
-    assertFalse("top level ordinal policy should not match root", ordinalPolicy
-        .shouldAdd(TaxonomyReader.ROOT_ORDINAL));
+    assertFalse("top level ordinal policy should not match root", ordinalPolicy.shouldAdd(TaxonomyReader.ROOT_ORDINAL));
     for (int i = 0; i < 10; i++) {
-      assertFalse("top level ordinal policy should not match "
-          + topLevelOrdinals[i],
+      assertFalse("top level ordinal policy should not match " + topLevelOrdinals[i], 
           ordinalPolicy.shouldAdd(topLevelOrdinals[i]));
     }
     for (int i = 0; i < 300; i++) {
-      assertTrue("top level ordinal policy should match "
-          + nonTopLevelOrdinals[i],
+      assertTrue("top level ordinal policy should match " + nonTopLevelOrdinals[i],
           ordinalPolicy.shouldAdd(nonTopLevelOrdinals[i]));
     }
 

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/categorypolicy/PathPolicyTest.java Tue Jan  8 03:40:16 2013
@@ -29,10 +29,9 @@ public class PathPolicyTest extends Luce
   @Test
   public void testDefaultPathPolicy() {
     // check path policy
-    CategoryPath cp = new CategoryPath();
+    CategoryPath cp = CategoryPath.EMPTY;
     PathPolicy pathPolicy = PathPolicy.ALL_CATEGORIES;
-    assertFalse("default path policy should not accept root", 
-        pathPolicy.shouldAdd(cp));
+    assertFalse("default path policy should not accept root", pathPolicy.shouldAdd(cp));
     for (int i = 0; i < 300; i++) {
       int nComponents = 1 + random().nextInt(10);
       String[] components = new String[nComponents];
@@ -40,9 +39,7 @@ public class PathPolicyTest extends Luce
         components[j] = (Integer.valueOf(random().nextInt(30))).toString();
       }
       cp = new CategoryPath(components);
-      assertTrue("default path policy should accept "
-          + cp.toString('/'),
-          pathPolicy.shouldAdd(cp));
+      assertTrue("default path policy should accept " + cp.toString('/'), pathPolicy.shouldAdd(cp));
     }
   }
 
@@ -74,7 +71,7 @@ public class PathPolicyTest extends Luce
     // check ordinal policy
     PathPolicy pathPolicy = new NonTopLevelPathPolicy();
     assertFalse("top level path policy should not match root",
-        pathPolicy.shouldAdd(new CategoryPath()));
+        pathPolicy.shouldAdd(CategoryPath.EMPTY));
     for (int i = 0; i < 10; i++) {
       assertFalse("top level path policy should not match "
           + topLevelPaths[i],

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/params/PerDimensionIndexingParamsTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/params/PerDimensionIndexingParamsTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/params/PerDimensionIndexingParamsTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/index/params/PerDimensionIndexingParamsTest.java Tue Jan  8 03:40:16 2013
@@ -1,15 +1,13 @@
 package org.apache.lucene.facet.index.params;
 
-import org.apache.lucene.index.Term;
-import org.junit.Test;
+import java.util.Collections;
 
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.facet.index.params.CategoryListParams;
-import org.apache.lucene.facet.index.params.FacetIndexingParams;
-import org.apache.lucene.facet.index.params.PerDimensionIndexingParams;
 import org.apache.lucene.facet.search.DrillDown;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.util.PartitionsUtils;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.util.LuceneTestCase;
+import org.junit.Test;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,9 +30,8 @@ public class PerDimensionIndexingParamsT
 
   @Test
   public void testTopLevelSettings() {
-    FacetIndexingParams ifip = new PerDimensionIndexingParams();
-    assertNotNull("Missing default category list", ifip
-        .getAllCategoryListParams());
+    FacetIndexingParams ifip = new PerDimensionIndexingParams(Collections.<CategoryPath, CategoryListParams>emptyMap());
+    assertNotNull("Missing default category list", ifip.getAllCategoryListParams());
     assertEquals(
         "Expected default category list term is $facets:$fulltree$",
         new Term("$facets", "$fulltree$"), ifip.getCategoryListParams(
@@ -67,15 +64,12 @@ public class PerDimensionIndexingParamsT
 
   @Test
   public void testCategoryListParamsAddition() {
-    PerDimensionIndexingParams tlfip = new PerDimensionIndexingParams();
-    CategoryListParams clp = new CategoryListParams(
-        new Term("clp", "value"));
-    tlfip.addCategoryListParams(new CategoryPath("a"), clp);
-    assertEquals("Expected category list term is " + clp.getTerm(), clp
-        .getTerm(), tlfip.getCategoryListParams(new CategoryPath("a"))
-        .getTerm());
-    assertNotSame("Unexpected default category list " + clp.getTerm(), clp,
-        tlfip.getCategoryListParams(null));
+    CategoryListParams clp = new CategoryListParams(new Term("clp", "value"));
+    PerDimensionIndexingParams tlfip = new PerDimensionIndexingParams(
+        Collections.<CategoryPath,CategoryListParams> singletonMap(new CategoryPath("a"), clp));
+    assertEquals("Expected category list term is " + clp.getTerm(), 
+        clp.getTerm(), tlfip.getCategoryListParams(new CategoryPath("a")).getTerm());
+    assertNotSame("Unexpected default category list " + clp.getTerm(), clp, tlfip.getCategoryListParams(null));
   }
 
 }
\ No newline at end of file

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/BaseTestTopK.java Tue Jan  8 03:40:16 2013
@@ -1,6 +1,7 @@
 package org.apache.lucene.facet.search;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -12,6 +13,7 @@ import org.apache.lucene.analysis.Analyz
 import org.apache.lucene.facet.FacetTestBase;
 import org.apache.lucene.facet.index.params.FacetIndexingParams;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
+import org.apache.lucene.facet.search.params.FacetRequest;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
@@ -97,12 +99,12 @@ public abstract class BaseTestTopK exten
   }
   
   protected FacetSearchParams searchParamsWithRequests(int numResults, int partitionSize) {
-    FacetSearchParams res = getFacetedSearchParams(partitionSize);
-    res.addFacetRequest(new CountFacetRequest(new CategoryPath("a"), numResults));
-    res.addFacetRequest(new CountFacetRequest(new CategoryPath("a", "1"), numResults));
-    res.addFacetRequest(new CountFacetRequest(new CategoryPath("a", "1", "10"), numResults));
-    res.addFacetRequest(new CountFacetRequest(new CategoryPath("a", "2",  "26", "267"), numResults));
-    return res;
+    List<FacetRequest> facetRequests = new ArrayList<FacetRequest>();
+    facetRequests.add(new CountFacetRequest(new CategoryPath("a"), numResults));
+    facetRequests.add(new CountFacetRequest(new CategoryPath("a", "1"), numResults));
+    facetRequests.add(new CountFacetRequest(new CategoryPath("a", "1", "10"), numResults));
+    facetRequests.add(new CountFacetRequest(new CategoryPath("a", "2",  "26", "267"), numResults));
+    return getFacetSearchParams(facetRequests, getFacetIndexingParams(partitionSize));
   }
 
   @Override

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/DrillDownTest.java Tue Jan  8 03:40:16 2013
@@ -2,16 +2,18 @@ package org.apache.lucene.facet.search;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.TextField;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
+import org.apache.lucene.facet.index.FacetFields;
 import org.apache.lucene.facet.index.params.CategoryListParams;
+import org.apache.lucene.facet.index.params.FacetIndexingParams;
 import org.apache.lucene.facet.index.params.PerDimensionIndexingParams;
-import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
 import org.apache.lucene.facet.taxonomy.TaxonomyWriter;
 import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
@@ -49,22 +51,18 @@ import org.junit.Test;
 
 public class DrillDownTest extends LuceneTestCase {
   
-  private FacetSearchParams defaultParams = new FacetSearchParams();
-  private FacetSearchParams nonDefaultParams;
+  private FacetIndexingParams defaultParams = FacetIndexingParams.ALL_PARENTS;
+  private PerDimensionIndexingParams nonDefaultParams;
   private static IndexReader reader;
   private static DirectoryTaxonomyReader taxo;
   private static Directory dir;
   private static Directory taxoDir;
   
   public DrillDownTest() {
-    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
-    CategoryListParams aClParams = new CategoryListParams(new Term("testing_facets_a", "a"));
-    CategoryListParams bClParams = new CategoryListParams(new Term("testing_facets_b", "b"));
-    
-    iParams.addCategoryListParams(new CategoryPath("a"), aClParams);
-    iParams.addCategoryListParams(new CategoryPath("b"), bClParams);
-    
-    nonDefaultParams = new FacetSearchParams(iParams);
+    Map<CategoryPath,CategoryListParams> paramsMap = new HashMap<CategoryPath,CategoryListParams>();
+    paramsMap.put(new CategoryPath("a"), new CategoryListParams(new Term("testing_facets_a", "a")));
+    paramsMap.put(new CategoryPath("b"), new CategoryListParams(new Term("testing_facets_b", "b")));
+    nonDefaultParams = new PerDimensionIndexingParams(paramsMap);
   }
 
   @BeforeClass
@@ -91,8 +89,8 @@ public class DrillDownTest extends Lucen
       if (i % 5 == 0) { // 20
         paths.add(new CategoryPath("b"));
       }
-      CategoryDocumentBuilder builder = new CategoryDocumentBuilder(taxoWriter);
-      builder.setCategoryPaths(paths).build(doc);
+      FacetFields facetFields = new FacetFields(taxoWriter);
+      facetFields.addFields(doc, paths);
       writer.addDocument(doc);
     }
     

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestCategoryListCache.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestCategoryListCache.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestCategoryListCache.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestCategoryListCache.java Tue Jan  8 03:40:16 2013
@@ -1,6 +1,7 @@
 package org.apache.lucene.facet.search;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -16,6 +17,7 @@ import org.apache.lucene.facet.index.par
 import org.apache.lucene.facet.search.cache.CategoryListCache;
 import org.apache.lucene.facet.search.cache.CategoryListData;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
+import org.apache.lucene.facet.search.params.FacetRequest;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.results.FacetResult;
 import org.apache.lucene.facet.taxonomy.CategoryPath;
@@ -74,22 +76,29 @@ public class TestCategoryListCache exten
   
   private void doTest(boolean withCache, boolean plantWrongData) throws Exception {
     Map<CategoryPath,Integer> truth = facetCountsTruth();
-    CategoryPath cp = (CategoryPath) truth.keySet().toArray()[0]; // any category path will do for this test 
-    CountFacetRequest frq = new CountFacetRequest(cp, 10);
-    FacetSearchParams sParams = getFacetedSearchParams();
-    sParams.addFacetRequest(frq);
+    CategoryPath cp = (CategoryPath) truth.keySet().toArray()[0]; // any category path will do for this test
+    FacetIndexingParams iParams = FacetIndexingParams.ALL_PARENTS;
+    final CategoryListCache clCache;
     if (withCache) {
       //let's use a cached cl data
-      FacetIndexingParams iparams = sParams.getFacetIndexingParams();
       CategoryListParams clp = new CategoryListParams(); // default term ok as only single list
-      CategoryListCache clCache = new CategoryListCache();
-      clCache.loadAndRegister(clp, indexReader, taxoReader, iparams);
+      clCache = new CategoryListCache();
+      clCache.loadAndRegister(clp, indexReader, taxoReader, iParams);
       if (plantWrongData) {
         // let's mess up the cached data and then expect a wrong result...
         messCachedData(clCache, clp);
       }
-      sParams.setClCache(clCache);
+    } else {
+      clCache = null;
     }
+    List<FacetRequest> req = new ArrayList<FacetRequest>();
+    req.add(new CountFacetRequest(cp, 10));
+    final FacetSearchParams sParams = new FacetSearchParams(req, iParams) {
+      @Override
+      public CategoryListCache getCategoryListCache() {
+        return clCache;
+      }
+    };
     FacetsCollector fc = new FacetsCollector(sParams, indexReader, taxoReader);
     searcher.search(new MatchAllDocsQuery(), fc);
     List<FacetResult> res = fc.getFacetResults();
@@ -110,9 +119,11 @@ public class TestCategoryListCache exten
       public CategoryListIterator iterator(int partition)  throws IOException {
         final CategoryListIterator it = cld.iterator(partition);
         return new CategoryListIterator() {              
+          @Override
           public boolean skipTo(int docId) throws IOException {
             return it.skipTo(docId);
           }
+          @Override
           public long nextCategory() throws IOException {
             long res = it.nextCategory();
             if (res>Integer.MAX_VALUE) {
@@ -120,6 +131,7 @@ public class TestCategoryListCache exten
             }
             return res>1 ? res-1 : res+1;
           }
+          @Override
           public boolean init() throws IOException {
             return it.init();
           }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetArrays.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetArrays.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetArrays.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetArrays.java Tue Jan  8 03:40:16 2013
@@ -1,11 +1,7 @@
 package org.apache.lucene.facet.search;
 
-import org.junit.Test;
-
 import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.facet.search.FacetArrays;
-import org.apache.lucene.facet.search.FloatArrayAllocator;
-import org.apache.lucene.facet.search.IntArrayAllocator;
+import org.junit.Test;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,26 +23,39 @@ import org.apache.lucene.facet.search.In
 public class TestFacetArrays extends LuceneTestCase {
 
   @Test
-  public void testSimple() {
-    FacetArrays arrays = new FacetArrays(new IntArrayAllocator(1, 1), new FloatArrayAllocator(1, 1));
-
-    int[] intArray = arrays.getIntArray();
-    // Set the element, then free
-    intArray[0] = 1;
-    arrays.free();
-
-    // We should expect a cleared array back
-    intArray = arrays.getIntArray();
-    assertEquals("Expected a cleared array back, but the array is still filled", 0, intArray[0]);
-
-    float[] floatArray = arrays.getFloatArray();
-    // Set the element, then free
-    floatArray[0] = 1.0f;
-    arrays.free();
-
-    // We should expect a cleared array back
-    floatArray = arrays.getFloatArray();
-    assertEquals("Expected a cleared array back, but the array is still filled", 0.0f, floatArray[0], 0.0);
+  public void testFacetArrays() {
+    for (boolean reusing : new boolean[] { false, true }) {
+      final FacetArrays arrays;
+      if (reusing) {
+        arrays = new ReusingFacetArrays(new ArraysPool(1, 1));
+      } else {
+        arrays = new FacetArrays(1);
+      }
+      
+      int[] intArray = arrays.getIntArray();
+      // Set the element, then free
+      intArray[0] = 1;
+      arrays.free();
+      
+      // We should expect a cleared array back
+      int[] newIntArray = arrays.getIntArray();
+      assertEquals("Expected a cleared array back, but the array is still filled", 0, newIntArray[0]);
+      
+      float[] floatArray = arrays.getFloatArray();
+      // Set the element, then free
+      floatArray[0] = 1.0f;
+      arrays.free();
+      
+      // We should expect a cleared array back
+      float[] newFloatArray = arrays.getFloatArray();
+      assertEquals("Expected a cleared array back, but the array is still filled", 0.0f, newFloatArray[0], 0.0);
+      
+      if (reusing) {
+        // same instance should be returned after free()
+        assertSame("ReusingFacetArrays did not reuse the array!", intArray, newIntArray);
+        assertSame("ReusingFacetArrays did not reuse the array!", floatArray, newFloatArray);
+      }
+    }
   }
   
 }

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsAccumulatorWithComplement.java Tue Jan  8 03:40:16 2013
@@ -123,18 +123,15 @@ public class TestFacetsAccumulatorWithCo
     
   }
   
-  @Override
-  protected FacetSearchParams getFacetedSearchParams() {
-    FacetSearchParams res = super.getFacetedSearchParams();
-    res.addFacetRequest(new CountFacetRequest(new CategoryPath("root","a"), 10));
-    return res;
+  private FacetSearchParams getFacetSearchParams() {
+    return new FacetSearchParams(new CountFacetRequest(new CategoryPath("root","a"), 10));
   }
   
   /** compute facets with certain facet requests and docs */
   private List<FacetResult> findFacets(ScoredDocIDs sDocids, boolean withComplement) throws IOException {
     
     FacetsAccumulator fAccumulator = 
-      new StandardFacetsAccumulator(getFacetedSearchParams(), indexReader, taxoReader);
+      new StandardFacetsAccumulator(getFacetSearchParams(), indexReader, taxoReader);
     
     fAccumulator.setComplementThreshold(
         withComplement ? 

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestFacetsCollector.java Tue Jan  8 03:40:16 2013
@@ -1,13 +1,13 @@
 package org.apache.lucene.facet.search;
 
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.lucene.analysis.core.KeywordAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field.Store;
 import org.apache.lucene.document.StringField;
-import org.apache.lucene.facet.index.CategoryDocumentBuilder;
+import org.apache.lucene.facet.index.FacetFields;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.params.ScoreFacetRequest;
 import org.apache.lucene.facet.search.results.FacetResult;
@@ -55,20 +55,18 @@ public class TestFacetsCollector extends
     IndexWriter iw = new IndexWriter(indexDir, new IndexWriterConfig(
         TEST_VERSION_CURRENT, new KeywordAnalyzer()));
 
-    CategoryDocumentBuilder cdb = new CategoryDocumentBuilder(taxonomyWriter);
-    Iterable<CategoryPath> cats = Arrays.asList(new CategoryPath("a"));
+    FacetFields facetFields = new FacetFields(taxonomyWriter);
     for(int i = atLeast(2000); i > 0; --i) {
       Document doc = new Document();
       doc.add(new StringField("f", "v", Store.NO));
-      cdb.setCategoryPaths(cats);
-      iw.addDocument(cdb.build(doc));
+      facetFields.addFields(doc, Collections.singletonList(new CategoryPath("a")));
+      iw.addDocument(doc);
     }
     
     taxonomyWriter.close();
     iw.close();
     
-    FacetSearchParams sParams = new FacetSearchParams();
-    sParams.addFacetRequest(new ScoreFacetRequest(new CategoryPath("a"), 10));
+    FacetSearchParams sParams = new FacetSearchParams(new ScoreFacetRequest(new CategoryPath("a"), 10));
     
     DirectoryReader r = DirectoryReader.open(indexDir);
     DirectoryTaxonomyReader taxo = new DirectoryTaxonomyReader(taxoDir);

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestMultipleCategoryLists.java Tue Jan  8 03:40:16 2013
@@ -1,8 +1,12 @@
 package org.apache.lucene.facet.search;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.analysis.MockTokenizer;
@@ -11,6 +15,7 @@ import org.apache.lucene.facet.index.par
 import org.apache.lucene.facet.index.params.FacetIndexingParams;
 import org.apache.lucene.facet.index.params.PerDimensionIndexingParams;
 import org.apache.lucene.facet.search.params.CountFacetRequest;
+import org.apache.lucene.facet.search.params.FacetRequest;
 import org.apache.lucene.facet.search.params.FacetSearchParams;
 import org.apache.lucene.facet.search.params.FacetRequest.ResultMode;
 import org.apache.lucene.facet.search.results.FacetResult;
@@ -70,7 +75,7 @@ public class TestMultipleCategoryLists e
     /**
      * Configure with no custom counting lists
      */
-    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
+    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams(Collections.<CategoryPath, CategoryListParams>emptyMap());
 
     seedIndex(iw, tw, iParams);
 
@@ -89,7 +94,7 @@ public class TestMultipleCategoryLists e
     // Obtain facets results and hand-test them
     assertCorrectResults(facetsCollector);
 
-    DocsEnum td = _TestUtil.docs(random(), ir, "$facets", new BytesRef("$fulltree$"), MultiFields.getLiveDocs(ir), null, 0);
+    DocsEnum td = _TestUtil.docs(random(), ir, "$facets", new BytesRef("$fulltree$"), MultiFields.getLiveDocs(ir), null, DocsEnum.FLAG_NONE);
     assertTrue(td.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
 
     tr.close();
@@ -109,9 +114,9 @@ public class TestMultipleCategoryLists e
     TaxonomyWriter tw = new DirectoryTaxonomyWriter(dirs[0][1],
         OpenMode.CREATE);
 
-    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
-    iParams.addCategoryListParams(new CategoryPath("Author"),
-        new CategoryListParams(new Term("$author", "Authors")));
+    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams(
+        Collections.singletonMap(new CategoryPath("Author"),
+            new CategoryListParams(new Term("$author", "Authors"))));
     seedIndex(iw, tw, iParams);
 
     IndexReader ir = iw.getReader();
@@ -148,11 +153,10 @@ public class TestMultipleCategoryLists e
     TaxonomyWriter tw = new DirectoryTaxonomyWriter(dirs[0][1],
         OpenMode.CREATE);
 
-    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
-    iParams.addCategoryListParams(new CategoryPath("Band"),
-        new CategoryListParams(new Term("$music", "Bands")));
-    iParams.addCategoryListParams(new CategoryPath("Composer"),
-        new CategoryListParams(new Term("$music", "Composers")));
+    Map<CategoryPath,CategoryListParams> paramsMap = new HashMap<CategoryPath,CategoryListParams>();
+    paramsMap.put(new CategoryPath("Band"), new CategoryListParams(new Term("$music", "Bands")));
+    paramsMap.put(new CategoryPath("Composer"), new CategoryListParams(new Term("$music", "Composers")));
+    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams(paramsMap);
     seedIndex(iw, tw, iParams);
 
     IndexReader ir = iw.getReader();
@@ -182,7 +186,7 @@ public class TestMultipleCategoryLists e
   }
 
   private void assertPostingListExists(String field, String text, IndexReader ir) throws IOException {
-    DocsEnum de = _TestUtil.docs(random(), ir, field, new BytesRef(text), null, null, 0);
+    DocsEnum de = _TestUtil.docs(random(), ir, field, new BytesRef(text), null, null, DocsEnum.FLAG_NONE);
     assertTrue(de.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
   }
 
@@ -195,11 +199,10 @@ public class TestMultipleCategoryLists e
     // create and open a taxonomy writer
     TaxonomyWriter tw = new DirectoryTaxonomyWriter(dirs[0][1], OpenMode.CREATE);
 
-    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
-    iParams.addCategoryListParams(new CategoryPath("Band"),
-        new CategoryListParams(new Term("$bands", "Bands")));
-    iParams.addCategoryListParams(new CategoryPath("Composer"),
-        new CategoryListParams(new Term("$composers", "Composers")));
+    Map<CategoryPath,CategoryListParams> paramsMap = new HashMap<CategoryPath,CategoryListParams>();
+    paramsMap.put(new CategoryPath("Band"), new CategoryListParams(new Term("$bands", "Bands")));
+    paramsMap.put(new CategoryPath("Composer"), new CategoryListParams(new Term("$composers", "Composers")));
+    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams(paramsMap);
     seedIndex(iw, tw, iParams);
 
     IndexReader ir = iw.getReader();
@@ -236,13 +239,11 @@ public class TestMultipleCategoryLists e
     TaxonomyWriter tw = new DirectoryTaxonomyWriter(dirs[0][1],
         OpenMode.CREATE);
 
-    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams();
-    iParams.addCategoryListParams(new CategoryPath("Band"),
-        new CategoryListParams(new Term("$music", "music")));
-    iParams.addCategoryListParams(new CategoryPath("Composer"),
-        new CategoryListParams(new Term("$music", "music")));
-    iParams.addCategoryListParams(new CategoryPath("Author"),
-        new CategoryListParams(new Term("$literature", "Authors")));
+    Map<CategoryPath,CategoryListParams> paramsMap = new HashMap<CategoryPath,CategoryListParams>();
+    paramsMap.put(new CategoryPath("Band"), new CategoryListParams(new Term("$music", "music")));
+    paramsMap.put(new CategoryPath("Composer"), new CategoryListParams(new Term("$music", "music")));
+    paramsMap.put(new CategoryPath("Author"), new CategoryListParams(new Term("$literature", "Authors")));
+    PerDimensionIndexingParams iParams = new PerDimensionIndexingParams(paramsMap);
 
     seedIndex(iw, tw, iParams);
 
@@ -329,20 +330,21 @@ public class TestMultipleCategoryLists e
                                         IndexSearcher searcher) throws IOException {
     // step 1: collect matching documents into a collector
     Query q = new MatchAllDocsQuery();
-    TopScoreDocCollector topDocsCollector = TopScoreDocCollector.create(10,
-        true);
+    TopScoreDocCollector topDocsCollector = TopScoreDocCollector.create(10, true);
 
-    // Faceted search parameters indicate which facets are we interested in
-    FacetSearchParams facetSearchParams = new FacetSearchParams(iParams);
-
-    facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("Band"), 10));
+    List<FacetRequest> facetRequests = new ArrayList<FacetRequest>();
+    facetRequests.add(new CountFacetRequest(new CategoryPath("Band"), 10));
     CountFacetRequest bandDepth = new CountFacetRequest(new CategoryPath("Band"), 10);
     bandDepth.setDepth(2);
     // makes it easier to check the results in the test.
     bandDepth.setResultMode(ResultMode.GLOBAL_FLAT);
-    facetSearchParams.addFacetRequest(bandDepth);
-    facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("Author"), 10));
-    facetSearchParams.addFacetRequest(new CountFacetRequest(new CategoryPath("Band", "Rock & Pop"), 10));
+    facetRequests.add(bandDepth);
+    facetRequests.add(new CountFacetRequest(new CategoryPath("Author"), 10));
+    facetRequests.add(new CountFacetRequest(new CategoryPath("Band", "Rock & Pop"), 10));
+
+    // Faceted search parameters indicate which facets are we interested in
+    FacetSearchParams facetSearchParams = new FacetSearchParams(facetRequests, iParams);
+    
 
     // perform documents search and facets accumulation
     FacetsCollector facetsCollector = new FacetsCollector(facetSearchParams, ir, tr);

Modified: lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java?rev=1430130&r1=1430129&r2=1430130&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java (original)
+++ lucene/dev/branches/lucene4547/lucene/facet/src/test/org/apache/lucene/facet/search/TestScoredDocIdCollector.java Tue Jan  8 03:40:16 2013
@@ -80,7 +80,7 @@ public class TestScoredDocIdCollector ex
     }
 
     // verify by facet values
-    List<FacetResult> countRes = findFacets(scoredDocIDs, getFacetedSearchParams());
+    List<FacetResult> countRes = findFacets(scoredDocIDs, getFacetSearchParams());
     List<FacetResult> scoreRes = findFacets(scoredDocIDs, sumScoreSearchParams());
 
     assertEquals("Wrong number of facet count results!", 1, countRes.size());
@@ -160,16 +160,11 @@ public class TestScoredDocIdCollector ex
   /* use a scoring aggregator */
   private FacetSearchParams sumScoreSearchParams() {
     // this will use default faceted indexing params, not altering anything about indexing
-    FacetSearchParams res = super.getFacetedSearchParams();
-    res.addFacetRequest(new ScoreFacetRequest(new CategoryPath("root", "a"), 10));
-    return res;
+    return new FacetSearchParams(new ScoreFacetRequest(new CategoryPath("root", "a"), 10));
   }
 
-  @Override
-  protected FacetSearchParams getFacetedSearchParams() {
-    FacetSearchParams res = super.getFacetedSearchParams();
-    res.addFacetRequest(new CountFacetRequest(new CategoryPath("root","a"), 10));
-    return res;
+  private FacetSearchParams getFacetSearchParams() {
+    return new FacetSearchParams(new CountFacetRequest(new CategoryPath("root","a"), 10));
   }
 
 }
\ No newline at end of file