You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/09/21 13:10:56 UTC

svn commit: r1388425 [1/2] - in /lucene/dev/branches/branch_4x/lucene: ./ core/src/java/org/apache/lucene/index/

Author: mikemccand
Date: Fri Sep 21 11:10:54 2012
New Revision: 1388425

URL: http://svn.apache.org/viewvc?rev=1388425&view=rev
Log:
javadocs

Modified:
    lucene/dev/branches/branch_4x/lucene/build.xml
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentReadState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentWriteState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SerialMergeScheduler.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SlowCompositeReaderWrapper.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SnapshotDeletionPolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SortedBytesMergeUtils.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/StoredFieldVisitor.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermContext.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermState.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Terms.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsEnum.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TwoPhaseCommitTool.java
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java

Modified: lucene/dev/branches/branch_4x/lucene/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/build.xml?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/build.xml (original)
+++ lucene/dev/branches/branch_4x/lucene/build.xml Fri Sep 21 11:10:54 2012
@@ -263,6 +263,7 @@
       <check-missing-javadocs dir="build/docs/core/org/apache/lucene/analysis" level="method"/>
       <check-missing-javadocs dir="build/docs/core/org/apache/lucene/document" level="method"/>
       <check-missing-javadocs dir="build/docs/core/org/apache/lucene/search/similarities" level="method"/>
+      <check-missing-javadocs dir="build/docs/core/org/apache/lucene/index" level="method"/>
     </sequential>
   </target>
   

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java Fri Sep 21 11:10:54 2012
@@ -48,6 +48,8 @@ public abstract class AtomicReader exten
 
   private final AtomicReaderContext readerContext = new AtomicReaderContext(this);
   
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
   protected AtomicReader() {
     super();
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java Fri Sep 21 11:10:54 2012
@@ -30,6 +30,7 @@ import java.util.Map;
 
 import org.apache.lucene.codecs.BlockTreeTermsReader;
 import org.apache.lucene.codecs.Codec;
+import org.apache.lucene.codecs.PostingsFormat; // javadocs
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.FieldType; // for javadocs
 import org.apache.lucene.index.DocValues.SortedSource;
@@ -70,6 +71,9 @@ public class CheckIndex {
 
   public static class Status {
 
+    Status() {
+    }
+
     /** True if no problems were found with the index. */
     public boolean clean;
 
@@ -134,6 +138,10 @@ public class CheckIndex {
      * @lucene.experimental
      */
     public static class SegmentInfoStatus {
+
+      SegmentInfoStatus() {
+      }
+
       /** Name of the segment. */
       public String name;
 
@@ -207,6 +215,9 @@ public class CheckIndex {
      * Status from testing field norms.
      */
     public static final class FieldNormStatus {
+      private FieldNormStatus() {
+      }
+
       /** Number of fields successfully tested */
       public long totFields = 0L;
 
@@ -218,6 +229,10 @@ public class CheckIndex {
      * Status from testing term index.
      */
     public static final class TermIndexStatus {
+
+      TermIndexStatus() {
+      }
+
       /** Total term count */
       public long termCount = 0L;
 
@@ -230,6 +245,10 @@ public class CheckIndex {
       /** Exception thrown during term index test (null on success) */
       public Throwable error = null;
 
+      /** Holds details of block allocations in the block
+       *  tree terms dictionary (this is only set if the
+       *  {@link PostingsFormat} for this segment uses block
+       *  tree. */
       public Map<String,BlockTreeTermsReader.Stats> blockTreeStats = null;
     }
 
@@ -237,6 +256,9 @@ public class CheckIndex {
      * Status from testing stored fields.
      */
     public static final class StoredFieldStatus {
+
+      StoredFieldStatus() {
+      }
       
       /** Number of documents tested. */
       public int docCount = 0;
@@ -253,6 +275,9 @@ public class CheckIndex {
      */
     public static final class TermVectorStatus {
       
+      TermVectorStatus() {
+      }
+
       /** Number of documents tested. */
       public int docCount = 0;
       
@@ -267,6 +292,10 @@ public class CheckIndex {
      * Status from testing DocValues
      */
     public static final class DocValuesStatus {
+
+      DocValuesStatus() {
+      }
+
       /** Number of documents tested. */
       public int docCount;
       /** Total number of docValues tested. */

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java Fri Sep 21 11:10:54 2012
@@ -57,6 +57,8 @@ public abstract class CompositeReader ex
 
   private volatile CompositeReaderContext readerContext = null; // lazy init
 
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
   protected CompositeReader() { 
     super();
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java Fri Sep 21 11:10:54 2012
@@ -47,6 +47,7 @@ public class ConcurrentMergeScheduler ex
 
   private int mergeThreadPriority = -1;
 
+  /** List of currently active {@link MergeThread}s. */
   protected List<MergeThread> mergeThreads = new ArrayList<MergeThread>();
 
   // Max number of merge threads allowed to be running at
@@ -63,11 +64,21 @@ public class ConcurrentMergeScheduler ex
   // throttling the incoming threads
   private int maxMergeCount = maxThreadCount+2;
 
+  /** {@link Directory} that holds the index. */
   protected Directory dir;
 
+  /** {@link IndexWriter} that owns this instance. */
   protected IndexWriter writer;
+
+  /** How many {@link MergeThread}s have kicked off (this is use
+   *  to name them). */
   protected int mergeThreadCount;
 
+  /** Sole constructor, with all settings set to default
+   *  values. */
+  public ConcurrentMergeScheduler() {
+  }
+
   /** Sets the max # simultaneous merge threads that should
    *  be running at once.  This must be <= {@link
    *  #setMaxMergeCount}. */
@@ -81,7 +92,9 @@ public class ConcurrentMergeScheduler ex
     maxThreadCount = count;
   }
 
-  /** @see #setMaxThreadCount(int) */
+  /** Returns {@code maxThreadCount}.
+   *
+   * @see #setMaxThreadCount(int) */
   public int getMaxThreadCount() {
     return maxThreadCount;
   }
@@ -129,7 +142,7 @@ public class ConcurrentMergeScheduler ex
     updateMergeThreads();
   }
 
-  // Larger merges come first
+  /** Sorts {@link MergeThread}s; larger merges come first. */
   protected static final Comparator<MergeThread> compareByMergeDocCount = new Comparator<MergeThread>() {
     public int compare(MergeThread t1, MergeThread t2) {
       final MergePolicy.OneMerge m1 = t1.getCurrentMerge();
@@ -398,6 +411,8 @@ public class ConcurrentMergeScheduler ex
     return thread;
   }
 
+  /** Runs a merge thread, which may run one or more merges
+   *  in sequence. */
   protected class MergeThread extends Thread {
 
     IndexWriter tWriter;
@@ -405,19 +420,24 @@ public class ConcurrentMergeScheduler ex
     MergePolicy.OneMerge runningMerge;
     private volatile boolean done;
 
+    /** Sole constructor. */
     public MergeThread(IndexWriter writer, MergePolicy.OneMerge startMerge) {
       this.tWriter = writer;
       this.startMerge = startMerge;
     }
 
+    /** Record the currently running merge. */
     public synchronized void setRunningMerge(MergePolicy.OneMerge merge) {
       runningMerge = merge;
     }
 
+    /** Return the currently running merge. */
     public synchronized MergePolicy.OneMerge getRunningMerge() {
       return runningMerge;
     }
 
+    /** Return the current merge, or null if this {@code
+     *  MergeThread} is done. */
     public synchronized MergePolicy.OneMerge getCurrentMerge() {
       if (done) {
         return null;
@@ -428,6 +448,7 @@ public class ConcurrentMergeScheduler ex
       }
     }
 
+    /** Set the priority of this thread. */
     public void setThreadPriority(int pri) {
       try {
         setPriority(pri);

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java Fri Sep 21 11:10:54 2012
@@ -24,6 +24,7 @@ import java.io.IOException;
  * an inconsistency in the index.
  */
 public class CorruptIndexException extends IOException {
+  /** Sole constructor. */
   public CorruptIndexException(String message) {
     super(message);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java Fri Sep 21 11:10:54 2012
@@ -49,6 +49,8 @@ import org.apache.lucene.store.Directory
  (non-Lucene) objects instead.
 */
 public abstract class DirectoryReader extends BaseCompositeReader<AtomicReader> {
+
+  /** Default termInfosIndexDivisor. */
   public static final int DEFAULT_TERMS_INDEX_DIVISOR = 1;
 
   /** The index directory. */

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java Fri Sep 21 11:10:54 2012
@@ -17,17 +17,18 @@
 
 package org.apache.lucene.index;
 
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.util.PagedBytes;
-import org.apache.lucene.util.BytesRef;
-import org.apache.lucene.util.Bits;
-import org.apache.lucene.util.StringHelper;
-
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Comparator;
+import java.util.List;
+
+import org.apache.lucene.codecs.PostingsFormat; // javadocs
+import org.apache.lucene.search.DocIdSetIterator;
+import org.apache.lucene.util.Bits;
+import org.apache.lucene.util.BytesRef;
+import org.apache.lucene.util.PagedBytes;
+import org.apache.lucene.util.StringHelper;
 
 /**
  * This class enables fast access to multiple term ords for
@@ -107,35 +108,57 @@ public class DocTermOrds {
   // values 0 (end term) and 1 (index is a pointer into byte array)
   private final static int TNUM_OFFSET = 2;
 
-  // Default: every 128th term is indexed
+  /** Every 128th term is indexed, by default. */
   public final static int DEFAULT_INDEX_INTERVAL_BITS = 7; // decrease to a low number like 2 for testing
 
   private int indexIntervalBits;
   private int indexIntervalMask;
   private int indexInterval;
 
+  /** Don't uninvert terms that exceed this count. */
   protected final int maxTermDocFreq;
 
+  /** Field we are uninverting. */
   protected final String field;
 
+  /** Number of terms in the field. */
   protected int numTermsInField;
-  /** total number of references to term numbers */
+
+  /** Total number of references to term numbers. */
   protected long termInstances;
   private long memsz;
-  /** total time to uninvert the field */
+
+  /** Total time to uninvert the field. */
   protected int total_time;
-  /** time for phase1 of the uninvert process */
+
+  /** Time for phase1 of the uninvert process. */
   protected int phase1_time;
 
+  /** Holds the per-document ords or a pointer to the ords. */
   protected int[] index;
+
+  /** Holds term ords for documents. */
   protected byte[][] tnums = new byte[256][];
+
+  /** Total bytes (sum of term lengths) for all indexed terms.*/
   protected long sizeOfIndexedStrings;
+
+  /** Holds the indexed (by default every 128th) terms. */
   protected BytesRef[] indexedTermsArray;
+
+  /** If non-null, only terms matching this prefix were
+   *  indexed. */
   protected BytesRef prefix;
+
+  /** Ordinal of the first term in the field, or 0 if the
+   *  {@link PostingsFormat} does not implement {@link
+   *  TermsEnum#ord}. */
   protected int ordBase;
 
-  protected DocsEnum docsEnum; //used while uninverting
+  /** Used while uninverting. */
+  protected DocsEnum docsEnum;
 
+  /** Returns total bytes used. */
   public long ramUsedInBytes() {
     // can cache the mem size since it shouldn't change
     if (memsz!=0) return memsz;
@@ -217,14 +240,14 @@ public class DocTermOrds {
   }
 
   /**
-   * @return The number of terms in this field
+   * Returns the number of terms in this field
    */
   public int numTerms() {
     return numTermsInField;
   }
 
   /**
-   * @return Whether this <code>DocTermOrds</code> instance is empty.
+   * Returns {@code true} if no terms were indexed.
    */
   public boolean isEmpty() {
     return index == null;
@@ -234,6 +257,9 @@ public class DocTermOrds {
   protected void visitTerm(TermsEnum te, int termNum) throws IOException {
   }
 
+  /** Invoked during {@link #uninvert(AtomicReader,BytesRef)}
+   *  to record the document frequency for each uninverted
+   *  term. */
   protected void setActualDocFreq(int termNum, int df) throws IOException {
   }
 
@@ -570,11 +596,15 @@ public class DocTermOrds {
     return pos;
   }
 
+  /** Iterates over the ords for a single document. */
   public class TermOrdsIterator {
     private int tnum;
     private int upto;
     private byte[] arr;
 
+    TermOrdsIterator() {
+    }
+
     /** Buffer must be at least 5 ints long.  Returns number
      *  of term ords placed into buffer; if this count is
      *  less than buffer.length then that is the end. */
@@ -620,6 +650,7 @@ public class DocTermOrds {
       return bufferUpto;
     }
 
+    /** Reset the iterator on a new document. */
     public TermOrdsIterator reset(int docID) {
       //System.out.println("  reset docID=" + docID);
       tnum = 0;
@@ -810,6 +841,8 @@ public class DocTermOrds {
     }
   }
 
+  /** Returns the term ({@link BytesRef}) corresponding to
+   *  the provided ordinal. */
   public BytesRef lookupTerm(TermsEnum termsEnum, int ord) throws IOException {
     termsEnum.seekExact(ord);
     return termsEnum.term();

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java Fri Sep 21 11:10:54 2012
@@ -78,11 +78,17 @@ import org.apache.lucene.util.packed.Pac
  */
 public abstract class DocValues implements Closeable {
 
+  /** Zero length DocValues array. */
   public static final DocValues[] EMPTY_ARRAY = new DocValues[0];
 
   private volatile SourceCache cache = new SourceCache.DirectSourceCache();
   private final Object cacheLock = new Object();
   
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
+  protected DocValues() {
+  }
+
   /**
    * Loads a new {@link Source} instance for this {@link DocValues} field
    * instance. Source instances returned from this method are not cached. It is
@@ -173,9 +179,12 @@ public abstract class DocValues implemen
    * @see DocValues#getDirectSource()
    */
   public static abstract class Source {
-    
+
+    /** {@link Type} of this {@code Source}. */
     protected final Type type;
 
+    /** Sole constructor. (For invocation by subclass 
+     *  constructors, typically implicit.) */
     protected Source(Type type) {
       this.type = type;
     }
@@ -261,6 +270,8 @@ public abstract class DocValues implemen
 
     private final Comparator<BytesRef> comparator;
 
+    /** Sole constructor. (For invocation by subclass 
+     * constructors, typically implicit.) */
     protected SortedSource(Type type, Comparator<BytesRef> comparator) {
       super(type);
       this.comparator = comparator;
@@ -685,6 +696,11 @@ public abstract class DocValues implemen
    */
   public static abstract class SourceCache {
 
+    /** Sole constructor. (For invocation by subclass 
+     * constructors, typically implicit.) */
+    protected SourceCache() {
+    }
+
     /**
      * Atomically loads a {@link Source} into the cache from the given
      * {@link DocValues} and returns it iff no other {@link Source} has already
@@ -717,6 +733,10 @@ public abstract class DocValues implemen
     public static final class DirectSourceCache extends SourceCache {
       private Source ref;
 
+      /** Sole constructor. */
+      public DirectSourceCache() {
+      }
+
       public synchronized Source load(DocValues values) throws IOException {
         if (ref == null) {
           ref = values.load();

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java Fri Sep 21 11:10:54 2012
@@ -31,7 +31,12 @@ public abstract class DocsAndPositionsEn
   /** Flag to pass to  {@link TermsEnum#docsAndPositions(Bits,DocsAndPositionsEnum,int)}
    *  if you require payloads in the returned enum. */
   public static final int FLAG_PAYLOADS = 0x2;
-  
+
+  /** Sole constructor. (For invocation by subclass 
+   * constructors, typically implicit.) */
+  protected DocsAndPositionsEnum() {
+  }
+
   /** Returns the next position.  You should only call this
    *  up to {@link DocsEnum#freq()} times else
    *  the behavior is not defined.  If positions were not

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java Fri Sep 21 11:10:54 2012
@@ -34,6 +34,11 @@ public abstract class DocsEnum extends D
 
   private AttributeSource atts = null;
 
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
+  protected DocsEnum() {
+  }
+
   /** Returns term frequency in the current document.  Do
    *  not call this before {@link #nextDoc} is first called,
    *  nor after {@link #nextDoc} returns NO_MORE_DOCS. 

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java Fri Sep 21 11:10:54 2012
@@ -84,6 +84,8 @@ public final class FieldInfo {
   };
 
   /**
+   * Sole Constructor.
+   *
    * @lucene.experimental
    */
   public FieldInfo(String name, boolean indexed, int number, boolean storeTermVector, 

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java Fri Sep 21 11:10:54 2012
@@ -16,6 +16,7 @@
  */
 package org.apache.lucene.index;
 
+import org.apache.lucene.analysis.TokenStream; // javadocs
 import org.apache.lucene.util.AttributeSource;
 
 /**
@@ -36,10 +37,14 @@ public final class FieldInvertState {
   float boost;
   AttributeSource attributeSource;
 
+  /** Creates {code FieldInvertState} for the specified
+   *  field name. */
   public FieldInvertState(String name) {
     this.name = name;
   }
   
+  /** Creates {code FieldInvertState} for the specified
+   *  field name and values for all fields. */
   public FieldInvertState(String name, int position, int length, int numOverlap, int offset, float boost) {
     this.name = name;
     this.position = position;
@@ -79,6 +84,7 @@ public final class FieldInvertState {
     return length;
   }
 
+  /** Set length value. */
   public void setLength(int length) {
     this.length = length;
   }
@@ -91,6 +97,8 @@ public final class FieldInvertState {
     return numOverlap;
   }
 
+  /** Set number of terms with {@code positionIncrement ==
+   *  0}. */
   public void setNumOverlap(int numOverlap) {
     this.numOverlap = numOverlap;
   }
@@ -112,7 +120,8 @@ public final class FieldInvertState {
   public float getBoost() {
     return boost;
   }
-  
+
+  /** Set boost value. */
   public void setBoost(float boost) {
     this.boost = boost;
   }
@@ -132,7 +141,10 @@ public final class FieldInvertState {
   public int getUniqueTermCount() {
     return uniqueTermCount;
   }
-  
+
+  /** Returns the {@link AttributeSource} from the {@link
+   *  TokenStream} that provided the indexed tokens for this
+   *  field. */
   public AttributeSource getAttributeSource() {
     return attributeSource;
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java Fri Sep 21 11:10:54 2012
@@ -25,6 +25,11 @@ import java.util.Iterator;
 
 public abstract class Fields implements Iterable<String> {
 
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
+  protected Fields() {
+  }
+
   /** Returns an iterator that will step through all fields
    *  names.  This will not return null.  */
   public abstract Iterator<String> iterator();
@@ -63,6 +68,7 @@ public abstract class Fields implements 
     }
     return numTerms;
   }
-  
+
+  /** Zero-length {@code Fields} array. */
   public final static Fields[] EMPTY_ARRAY = new Fields[0];
 }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java Fri Sep 21 11:10:54 2012
@@ -73,11 +73,19 @@ public abstract class IndexCommit implem
   */
   public abstract void delete();
 
+  /** Returns true if this commit should be deleted; this is
+   *  only used by {@link IndexWriter} after invoking the
+   *  {@link IndexDeletionPolicy}. */
   public abstract boolean isDeleted();
 
   /** Returns number of segments referenced by this commit. */
   public abstract int getSegmentCount();
 
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
+  protected IndexCommit() {
+  }
+
   /** Two IndexCommits are equal if both their Directory and versions are equal. */
   @Override
   public boolean equals(Object other) {

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java Fri Sep 21 11:10:54 2012
@@ -25,14 +25,28 @@ import org.apache.lucene.store.DataInput
  */
 public class IndexFormatTooNewException extends CorruptIndexException {
 
-  /** @lucene.internal */
+  /** Creates an {@code IndexFormatTooNewException}
+   *
+   *  @param resourceDesc describes the file that was too old
+   *  @param version the version of the file that was too old
+   *  @param minVersion the minimum version accepted
+   *  @param maxVersion the maxium version accepted
+   *
+   * @lucene.internal */
   public IndexFormatTooNewException(String resourceDesc, int version, int minVersion, int maxVersion) {
     super("Format version is not supported (resource: " + resourceDesc + "): "
       + version + " (needs to be between " + minVersion + " and " + maxVersion + ")");
     assert resourceDesc != null;
   }
 
-  /** @lucene.internal */
+  /** Creates an {@code IndexFormatTooNewException}
+   *
+   *  @param in the open file that's too old
+   *  @param version the version of the file that was too old
+   *  @param minVersion the minimum version accepted
+   *  @param maxVersion the maxium version accepted
+   *
+   * @lucene.internal */
   public IndexFormatTooNewException(DataInput in, int version, int minVersion, int maxVersion) {
     this(in.toString(), version, minVersion, maxVersion);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java Fri Sep 21 11:10:54 2012
@@ -25,19 +25,36 @@ import org.apache.lucene.store.DataInput
  */
 public class IndexFormatTooOldException extends CorruptIndexException {
 
-  /** @lucene.internal */
+  /** Creates an {@code IndexFormatTooOldException}.
+   *
+   *  @param resourceDesc describes the file that was too old
+   *  @param version the version of the file that was too old
+   * 
+   * @lucene.internal */
   public IndexFormatTooOldException(String resourceDesc, String version) {
     super("Format version is not supported (resource: " + resourceDesc + "): " +
         version + ". This version of Lucene only supports indexes created with release 3.0 and later.");
     assert resourceDesc != null;
   }
 
-  /** @lucene.internal */
+  /** Creates an {@code IndexFormatTooOldException}.
+   *
+   *  @param in the open file that's too old
+   *  @param version the version of the file that was too old
+   * 
+   * @lucene.internal */
   public IndexFormatTooOldException(DataInput in, String version) {
     this(in.toString(), version);
   }
   
-  /** @lucene.internal */
+  /** Creates an {@code IndexFormatTooOldException}.
+   *
+   *  @param resourceDesc describes the file that was too old
+   *  @param version the version of the file that was too old
+   *  @param minVersion the minimum version accepted
+   *  @param maxVersion the maxium version accepted
+   * 
+   * @lucene.internal */
   public IndexFormatTooOldException(String resourceDesc, int version, int minVersion, int maxVersion) {
     super("Format version is not supported (resource: " + resourceDesc + "): " +
         version + " (needs to be between " + minVersion + " and " + maxVersion +
@@ -45,7 +62,14 @@ public class IndexFormatTooOldException 
     assert resourceDesc != null;
   }
 
-  /** @lucene.internal */
+  /** Creates an {@code IndexFormatTooOldException}.
+   *
+   *  @param in the open file that's too old
+   *  @param version the version of the file that was too old
+   *  @param minVersion the minimum version accepted
+   *  @param maxVersion the maxium version accepted
+   *
+   * @lucene.internal */
   public IndexFormatTooOldException(DataInput in, int version, int minVersion, int maxVersion) {
     this(in.toString(), version, minVersion, maxVersion);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java Fri Sep 21 11:10:54 2012
@@ -25,6 +25,8 @@ import java.io.FileNotFoundException;
  */
 public final class IndexNotFoundException extends FileNotFoundException {
 
+  /** Creates IndexFileNotFoundException with the
+   *  description message. */
   public IndexNotFoundException(String msg) {
     super(msg);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java Fri Sep 21 11:10:54 2012
@@ -89,6 +89,7 @@ public abstract class IndexReader implem
    * @lucene.experimental
    */
   public static interface ReaderClosedListener {
+    /** Invoked when the {@link IndexReader} is closed. */
     public void onClose(IndexReader reader);
   }
 

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java Fri Sep 21 11:10:54 2012
@@ -67,6 +67,8 @@ public final class IndexUpgrader {
     System.exit(1);
   }
 
+  /** Main method to run {code IndexUpgrader} from the
+   *  command-line. */
   @SuppressWarnings("deprecation")
   public static void main(String[] args) throws IOException {
     String path = null;
@@ -132,7 +134,8 @@ public final class IndexUpgrader {
     this.iwc = iwc;
     this.deletePriorCommits = deletePriorCommits;
   }
-  
+
+  /** Perform the upgrade. */
   public void upgrade() throws IOException {
     if (!DirectoryReader.indexExists(dir)) {
       throw new IndexNotFoundException(dir.toString());

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Fri Sep 21 11:10:54 2012
@@ -3812,12 +3812,18 @@ public class IndexWriter implements Clos
     return segmentInfos.size() > 0 ? segmentInfos.info(segmentInfos.size()-1) : null;
   }
 
-  /** @lucene.internal */
+  /** Returns a string description of all segments, for
+   *  debugging.
+   *
+   * @lucene.internal */
   public synchronized String segString() {
     return segString(segmentInfos);
   }
 
-  /** @lucene.internal */
+  /** Returns a string description of the specified
+   *  segments, for debugging.
+   *
+   * @lucene.internal */
   public synchronized String segString(Iterable<SegmentInfoPerCommit> infos) {
     final StringBuilder buffer = new StringBuilder();
     for(final SegmentInfoPerCommit info : infos) {
@@ -3829,7 +3835,10 @@ public class IndexWriter implements Clos
     return buffer.toString();
   }
 
-  /** @lucene.internal */
+  /** Returns a string description of the specified
+   *  segment, for debugging.
+   *
+   * @lucene.internal */
   public synchronized String segString(SegmentInfoPerCommit info) {
     return info.toString(info.info.dir, numDeletedDocs(info) - info.getDelCount());
   }
@@ -4044,6 +4053,15 @@ public class IndexWriter implements Clos
    * <p><b>NOTE</b>: warm is called before any deletes have
    * been carried over to the merged segment. */
   public static abstract class IndexReaderWarmer {
+
+    /** Sole constructor. (For invocation by subclass 
+     *  constructors, typically implicit.) */
+    protected IndexReaderWarmer() {
+    }
+
+    /** Invoked on the {@link AtomicReader} for the newly
+     *  merged segment, before that segment is made visible
+     *  to near-real-time readers. */
     public abstract void warm(AtomicReader reader) throws IOException;
   }
 

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java Fri Sep 21 11:10:54 2012
@@ -28,6 +28,10 @@ import java.util.List;
 
 public final class KeepOnlyLastCommitDeletionPolicy implements IndexDeletionPolicy {
 
+  /** Sole constructor. */
+  public KeepOnlyLastCommitDeletionPolicy() {
+  }
+
   /**
    * Deletes all commits except the most recent one.
    */

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java Fri Sep 21 11:10:54 2012
@@ -46,21 +46,56 @@ public class LiveIndexWriterConfig {
   private volatile int termIndexInterval; // TODO: this should be private to the codec, not settable here
 
   // modified by IndexWriterConfig
+  /** {@link IndexDeletionPolicy} controlling when commit
+   *  points are deleted. */
   protected volatile IndexDeletionPolicy delPolicy;
+
+  /** {@link IndexCommit} that {@link IndexWriter} is
+   *  opened on. */
   protected volatile IndexCommit commit;
+
+  /** {@link OpenMode} that {@link IndexWriter} is opened
+   *  with. */
   protected volatile OpenMode openMode;
+
+  /** {@link Similarity} to use when encoding norms. */
   protected volatile Similarity similarity;
+
+  /** {@link MergeScheduler} to use for running merges. */
   protected volatile MergeScheduler mergeScheduler;
+
+  /** Timeout when trying to obtain the write lock on init. */
   protected volatile long writeLockTimeout;
+
+  /** {@link IndexingChain} that determines how documents are
+   *  indexed. */
   protected volatile IndexingChain indexingChain;
+
+  /** {@link Codec} used to write new segments. */
   protected volatile Codec codec;
+
+  /** {@link InfoStream} for debugging messages. */
   protected volatile InfoStream infoStream;
+
+  /** {@link MergePolicy} for selecting merges. */
   protected volatile MergePolicy mergePolicy;
+
+  /** {@code DocumentsWriterPerThreadPool} to control how
+   *  threads are allocated to {@code DocumentsWriterPerThread}. */
   protected volatile DocumentsWriterPerThreadPool indexerThreadPool;
+
+  /** True if readers should be pooled. */
   protected volatile boolean readerPooling;
+
+  /** {@link FlushPolicy} to control when segments are
+   *  flushed. */
   protected volatile FlushPolicy flushPolicy;
+
+  /** Sets the hard upper bound on RAM usage for a single
+   *  segment, after which the segment is forced to flush. */
   protected volatile int perThreadHardLimitMB;
 
+  /** {@link Version} that {@link IndexWriter} should emulate. */
   protected final Version matchVersion;
 
   // used by IndexWriterConfig
@@ -372,7 +407,9 @@ public class LiveIndexWriterConfig {
     return this;
   }
 
-  /** @see #setReaderTermsIndexDivisor(int) */
+  /** Returns the {@code termInfosIndexDivisor}.
+   * 
+   * @see #setReaderTermsIndexDivisor(int) */
   public int getReaderTermsIndexDivisor() {
     return readerTermsIndexDivisor;
   }
@@ -494,7 +531,8 @@ public class LiveIndexWriterConfig {
     return flushPolicy;
   }
   
-  /**
+  /** Returns {@link InfoStream} used for debugging.
+   *
    * @see IndexWriterConfig#setInfoStream(InfoStream)
    */
   public InfoStream getInfoStream() {

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java Fri Sep 21 11:10:54 2012
@@ -34,6 +34,8 @@ public class LogByteSizeMergePolicy exte
    *  or larger will never be merged during forceMerge.  @see setMaxMergeMBForForceMerge */
   public static final double DEFAULT_MAX_MERGE_MB_FOR_FORCED_MERGE = Long.MAX_VALUE;
 
+  /** Sole constructor, setting all settings to their
+   *  defaults. */
   public LogByteSizeMergePolicy() {
     minMergeSize = (long) (DEFAULT_MIN_MERGE_MB*1024*1024);
     maxMergeSize = (long) (DEFAULT_MAX_MERGE_MB*1024*1024);

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java Fri Sep 21 11:10:54 2012
@@ -28,6 +28,8 @@ public class LogDocMergePolicy extends L
   /** Default minimum segment size.  @see setMinMergeDocs */
   public static final int DEFAULT_MIN_MERGE_DOCS = 1000;
 
+  /** Sole constructor, setting all settings to their
+   *  defaults. */
   public LogDocMergePolicy() {
     minMergeSize = DEFAULT_MIN_MERGE_DOCS;
     

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java Fri Sep 21 11:10:54 2012
@@ -25,14 +25,15 @@ import java.util.Locale;
 import java.util.Map;
 
 
-/** <p>This class implements a {@link MergePolicy} that tries
- *  to merge segments into levels of exponentially
- *  increasing size, where each level has fewer segments than
- *  the value of the merge factor. Whenever extra segments
- *  (beyond the merge factor upper bound) are encountered,
- *  all segments within the level are merged. You can get or
- *  set the merge factor using {@link #getMergeFactor()} and
- *  {@link #setMergeFactor(int)} respectively.</p>
+/**
+ * <p>This class implements a {@link MergePolicy} that tries
+ * to merge segments into levels of exponentially
+ * increasing size, where each level has fewer segments than
+ * the value of the merge factor. Whenever extra segments
+ * (beyond the merge factor upper bound) are encountered,
+ * all segments within the level are merged. You can get or
+ * set the merge factor using {@link #getMergeFactor()} and
+ * {@link #setMergeFactor(int)} respectively.</p>
  *
  * <p>This class is abstract and requires a subclass to
  * define the {@link #size} method which specifies how a
@@ -71,32 +72,64 @@ public abstract class LogMergePolicy ext
    */
   public static final long DEFAULT_MAX_CFS_SEGMENT_SIZE = Long.MAX_VALUE;
 
+  /** How many segments to merge at a time. */
   protected int mergeFactor = DEFAULT_MERGE_FACTOR;
 
+  /** Any segments whose size is smaller than this value
+   *  will be rounded up to this value.  This ensures that
+   *  tiny segments are aggressively merged. */
   protected long minMergeSize;
+
+  /** If the size of a segment exceeds this value then it
+   *  will never be merged. */
   protected long maxMergeSize;
+
   // Although the core MPs set it explicitly, we must default in case someone
   // out there wrote his own LMP ...
+  /** If the size of a segment exceeds this value then it
+   * will never be merged during {@link IndexWriter#forceMerge}. */
   protected long maxMergeSizeForForcedMerge = Long.MAX_VALUE;
+
+  /** If a segment has more than this many documents then it
+   *  will never be merged. */
   protected int maxMergeDocs = DEFAULT_MAX_MERGE_DOCS;
 
+  /** If the size of the merge segment exceesd this ratio of
+   *  the total index size then it will remain in
+   *  non-compound format even if {@link
+   *  #setUseCompoundFile} is {@code true}. */
   protected double noCFSRatio = DEFAULT_NO_CFS_RATIO;
+
+  /** If the size of the merged segment exceeds
+   *  this value then it will not use compound file format. */
   protected long maxCFSSegmentSize = DEFAULT_MAX_CFS_SEGMENT_SIZE;
 
+  /** If true, we pro-rate a segment's size by the
+   *  percentage of non-deleted documents. */
   protected boolean calibrateSizeByDeletes = true;
-  
+
+  /** True if new segments (flushed or merged) should use
+   *  the compound file format.  Note that large segments
+   *  may sometimes still use non-compound format (see
+   *  {@link #setNoCFSRatio}. */
   protected boolean useCompoundFile = true;
 
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
   public LogMergePolicy() {
     super();
   }
 
+  /** Returns true if {@code LMP} is enabled in {@link
+   *  IndexWriter}'s {@code infoStream}. */
   protected boolean verbose() {
     final IndexWriter w = writer.get();
     return w != null && w.infoStream.isEnabled("LMP");
   }
 
-  /** @see #setNoCFSRatio */
+  /** Returns current {@code noCFSRatio}.
+   *
+   *  @see #setNoCFSRatio */
   public double getNoCFSRatio() {
     return noCFSRatio;
   }
@@ -112,7 +145,9 @@ public abstract class LogMergePolicy ext
     }
     this.noCFSRatio = noCFSRatio;
   }
-  
+
+  /** Print a debug message to {@link IndexWriter}'s {@code
+   *  infoStream}. */
   protected void message(String message) {
     if (verbose()) {
       writer.get().infoStream.message("LMP", message);
@@ -189,8 +224,14 @@ public abstract class LogMergePolicy ext
   @Override
   public void close() {}
 
+  /** Return the size of the provided {@link
+   *  SegmentInfoPerCommit}. */
   abstract protected long size(SegmentInfoPerCommit info) throws IOException;
 
+  /** Return the number of documents in the provided {@link
+   *  SegmentInfoPerCommit}, pro-rated by percentage of
+   *  non-deleted documents if {@link
+   *  #setCalibrateSizeByDeletes} is set. */
   protected long sizeDocs(SegmentInfoPerCommit info) throws IOException {
     if (calibrateSizeByDeletes) {
       int delCount = writer.get().numDeletedDocs(info);
@@ -200,7 +241,11 @@ public abstract class LogMergePolicy ext
       return info.info.getDocCount();
     }
   }
-  
+
+  /** Return the byte size of the provided {@link
+   *  SegmentInfoPerCommit}, pro-rated by percentage of
+   *  non-deleted documents if {@link
+   *  #setCalibrateSizeByDeletes} is set. */
   protected long sizeBytes(SegmentInfoPerCommit info) throws IOException {
     long byteSize = info.sizeInBytes();
     if (calibrateSizeByDeletes) {
@@ -213,6 +258,9 @@ public abstract class LogMergePolicy ext
     }
   }
   
+  /** Returns true if the number of segments eligible for
+   *  merging is less than or equal to the specified {@code
+   *  maxNumSegments}. */
   protected boolean isMerged(SegmentInfos infos, int maxNumSegments, Map<SegmentInfoPerCommit,Boolean> segmentsToMerge) throws IOException {
     final int numSegments = infos.size();
     int numToMerge = 0;

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java Fri Sep 21 11:10:54 2012
@@ -71,14 +71,23 @@ public abstract class MergePolicy implem
     long mergeGen;                  // used by IndexWriter
     boolean isExternal;             // used by IndexWriter
     int maxNumSegments = -1;        // used by IndexWriter
+
+    /** Estimated size in bytes of the merged segment. */
     public long estimatedMergeBytes;       // used by IndexWriter
     List<SegmentReader> readers;        // used by IndexWriter
+
+    /** Segments to be merged. */
     public final List<SegmentInfoPerCommit> segments;
+
+    /** Number of documents in the merged segment. */
     public final int totalDocCount;
     boolean aborted;
     Throwable error;
     boolean paused;
 
+    /** Sole constructor.
+     * @param segments List of {@link SegmentInfoPerCommit}s
+     *        to be merged. */
     public OneMerge(List<SegmentInfoPerCommit> segments) {
       if (0 == segments.size())
         throw new RuntimeException("segments must include at least one segment");
@@ -116,6 +125,8 @@ public abstract class MergePolicy implem
       return aborted;
     }
 
+    /** Called periodically by {@link IndexWriter} while
+     *  merging to see if the merge is aborted. */
     public synchronized void checkAborted(Directory dir) throws MergeAbortedException {
       if (aborted) {
         throw new MergeAbortedException("merge is aborted: " + segString(dir));
@@ -135,6 +146,9 @@ public abstract class MergePolicy implem
       }
     }
 
+    /** Set or clear whether this merge is paused paused (for example
+     *  {@link ConcurrentMergeScheduler} will pause merges
+     *  if too many are running). */
     synchronized public void setPause(boolean paused) {
       this.paused = paused;
       if (!paused) {
@@ -143,10 +157,15 @@ public abstract class MergePolicy implem
       }
     }
 
+    /** Returns true if this merge is paused.
+     *
+     *  @see #setPause(boolean) */
     synchronized public boolean getPause() {
       return paused;
     }
 
+    /** Returns a readable description of the current merge
+     *  state. */
     public String segString(Directory dir) {
       StringBuilder b = new StringBuilder();
       final int numSegments = segments.size();
@@ -188,7 +207,8 @@ public abstract class MergePolicy implem
       }
       return total;
     }
-    
+
+    /** Return {@link MergeInfo} describing this merge. */
     public MergeInfo getMergeInfo() {
       return new MergeInfo(totalDocCount, estimatedMergeBytes, isExternal, maxNumSegments);
     }    
@@ -208,10 +228,19 @@ public abstract class MergePolicy implem
 
     public final List<OneMerge> merges = new ArrayList<OneMerge>();
 
+    /** Sole constructor.  Use {@link
+     *  #add(MergePolicy.OneMerge)} to add merges. */
+    public MergeSpecification() {
+    }
+
+    /** Adds the provided {@link OneMerge} to this
+     *  specification. */
     public void add(OneMerge merge) {
       merges.add(merge);
     }
 
+    /** Returns a description of the merges in this
+    *  specification. */
     public String segString(Directory dir) {
       StringBuilder b = new StringBuilder();
       b.append("MergeSpec:\n");
@@ -227,15 +256,18 @@ public abstract class MergePolicy implem
   public static class MergeException extends RuntimeException {
     private Directory dir;
 
+    /** Create a {@code MergeException}. */
     public MergeException(String message, Directory dir) {
       super(message);
       this.dir = dir;
     }
 
+    /** Create a {@code MergeException}. */
     public MergeException(Throwable exc, Directory dir) {
       super(exc);
       this.dir = dir;
     }
+
     /** Returns the {@link Directory} of the index that hit
      *  the exception. */
     public Directory getDirectory() {
@@ -248,14 +280,19 @@ public abstract class MergePolicy implem
    *  <code>false</code>.  Normally this exception is
    *  privately caught and suppresed by {@link IndexWriter}.  */
   public static class MergeAbortedException extends IOException {
+    /** Create a {@link MergeAbortedException}. */
     public MergeAbortedException() {
       super("merge is aborted");
     }
+
+    /** Create a {@link MergeAbortedException} with a
+     *  specified message. */
     public MergeAbortedException(String message) {
       super(message);
     }
   }
 
+  /** {@link IndexWriter} that contains this instance. */
   protected SetOnce<IndexWriter> writer;
 
   @Override

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java Fri Sep 21 11:10:54 2012
@@ -29,6 +29,11 @@ import java.io.IOException;
 */
 public abstract class MergeScheduler implements Closeable {
 
+  /** Sole constructor. (For invocation by subclass 
+   *  constructors, typically implicit.) */
+  protected MergeScheduler() {
+  }
+
   /** Run the merges provided by {@link IndexWriter#getNextMerge()}. */
   public abstract void merge(IndexWriter writer) throws IOException;
 

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java Fri Sep 21 11:10:54 2012
@@ -24,7 +24,7 @@ import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.InfoStream;
 import org.apache.lucene.util.packed.PackedInts;
 
-/** Holds common state used during segment merging
+/** Holds common state used during segment merging.
  *
  * @lucene.experimental */
 public class MergeState {
@@ -35,10 +35,14 @@ public class MergeState {
   public static abstract class DocMap {
     private final Bits liveDocs;
 
+    /** Sole constructor. (For invocation by subclass 
+     *  constructors, typically implicit.) */
     protected DocMap(Bits liveDocs) {
       this.liveDocs = liveDocs;
     }
 
+    /** Creates a {@link DocMap} instance appropriate for
+     *  this reader. */
     public static DocMap build(AtomicReader reader) {
       final int maxDoc = reader.maxDoc();
       final int numDeletes = reader.numDeletedDocs();
@@ -82,6 +86,7 @@ public class MergeState {
       return new DirectDocMap(liveDocs, docIds, del);
     }
 
+    /** Returns the mapped docID corresponding to the provided one. */
     public int get(int docId) {
       if (liveDocs == null || liveDocs.get(docId)) {
         return remap(docId);
@@ -90,16 +95,22 @@ public class MergeState {
       }
     }
 
+    /** Returns the mapped docID corresponding to the provided one. */
     public abstract int remap(int docId);
 
+    /** Returns the total number of documents, ignoring
+     *  deletions. */
     public abstract int maxDoc();
 
+    /** Returns the number of not-deleted documents. */
     public final int numDocs() {
       return maxDoc() - numDeletedDocs();
     }
 
+    /** Returns the number of deleted documents. */
     public abstract int numDeletedDocs();
 
+    /** Returns true if there are any deletions. */
     public boolean hasDeletions() {
       return numDeletedDocs() > 0;
     }
@@ -184,21 +195,45 @@ public class MergeState {
     }
   }
 
+  /** {@link SegmentInfo} of the newly merged segment. */
   public SegmentInfo segmentInfo;
+
+  /** {@link FieldInfos} of the newly merged segment. */
   public FieldInfos fieldInfos;
-  public List<AtomicReader> readers;                  // Readers being merged
-  public DocMap[] docMaps;                            // Maps docIDs around deletions
-  public int[] docBase;                               // New docID base per reader
+
+  /** Readers being merged. */
+  public List<AtomicReader> readers;
+
+  /** Maps docIDs around deletions. */
+  public DocMap[] docMaps;
+
+  /** New docID base per reader. */
+  public int[] docBase;
+
+  /** Holds the CheckAbort instance, which is invoked
+   *  periodically to see if the merge has been aborted. */
   public CheckAbort checkAbort;
+  
+  /** InfoStream for debugging messages. */
   public InfoStream infoStream;
 
-  // Updated per field;
+  /** Current field being merged. */
   public FieldInfo fieldInfo;
   
   // TODO: get rid of this? it tells you which segments are 'aligned' (e.g. for bulk merging)
   // but is this really so expensive to compute again in different components, versus once in SM?
+  
+  /** {@link SegmentReader}s that have identical field
+   * name/number mapping, so their stored fields and term
+   * vectors may be bulk merged. */
   public SegmentReader[] matchingSegmentReaders;
+
+  /** How many {@link #matchingSegmentReaders} are set. */
   public int matchedCount;
+
+  /** Sole constructor. */
+  MergeState() {
+  }
   
   /**
    * Class for recording units of work when merging segments.
@@ -207,6 +242,8 @@ public class MergeState {
     private double workCount;
     private final MergePolicy.OneMerge merge;
     private final Directory dir;
+
+    /** Creates a #CheckAbort instance. */
     public CheckAbort(MergePolicy.OneMerge merge, Directory dir) {
       this.merge = merge;
       this.dir = dir;

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java Fri Sep 21 11:10:54 2012
@@ -38,15 +38,19 @@ public final class MultiDocsAndPositions
   int currentBase;
   int doc = -1;
 
+  /** Sole constructor. */
   public MultiDocsAndPositionsEnum(MultiTermsEnum parent, int subReaderCount) {
     this.parent = parent;
     subDocsAndPositionsEnum = new DocsAndPositionsEnum[subReaderCount];
   }
 
+  /** Returns {@code true} if this instance can be reused by
+   *  the provided {@link MultiTermsEnum}. */
   public boolean canReuse(MultiTermsEnum parent) {
     return this.parent == parent;
   }
 
+  /** Rre-use and reset this instance on the provided slices. */
   public MultiDocsAndPositionsEnum reset(final EnumWithSlice[] subs, final int numSubs) {
     this.numSubs = numSubs;
     this.subs = new EnumWithSlice[subs.length];
@@ -61,10 +65,13 @@ public final class MultiDocsAndPositions
     return this;
   }
 
+  /** How many sub-readers we are merging.
+   *  @see #getSubs */
   public int getNumSubs() {
     return numSubs;
   }
 
+  /** Returns sub-readers we are merging. */
   public EnumWithSlice[] getSubs() {
     return subs;
   }
@@ -146,7 +153,14 @@ public final class MultiDocsAndPositions
   /** Holds a {@link DocsAndPositionsEnum} along with the
    *  corresponding {@link ReaderSlice}. */
   public final static class EnumWithSlice {
+    EnumWithSlice() {
+    }
+
+    /** {@link DocsAndPositionsEnum} for this sub-reader. */
     public DocsAndPositionsEnum docsAndPositionsEnum;
+
+    /** {@link ReaderSlice} describing how this sub-reader
+     *  fits into the composite reader. */
     public ReaderSlice slice;
     
     @Override

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java Fri Sep 21 11:10:54 2012
@@ -22,7 +22,8 @@ import java.io.IOException;
 import java.util.Arrays;
 
 /**
- * Exposes flex API, merged from flex API of sub-segments.
+ * Exposes {@link DocsEnum}, merged from {@link DocsEnum}
+ * API of sub-segments.
  *
  * @lucene.experimental
  */
@@ -37,6 +38,9 @@ public final class MultiDocsEnum extends
   int currentBase;
   int doc = -1;
 
+  /** Sole constructor
+   * @param parent The {@link MultiTermsEnum} that created us.
+   * @param subReaderCount How many sub-readers are being merged. */
   public MultiDocsEnum(MultiTermsEnum parent, int subReaderCount) {
     this.parent = parent;
     subDocsEnum = new DocsEnum[subReaderCount];
@@ -57,14 +61,19 @@ public final class MultiDocsEnum extends
     return this;
   }
 
+  /** Returns {@code true} if this instance can be reused by
+   *  the provided {@link MultiTermsEnum}. */
   public boolean canReuse(MultiTermsEnum parent) {
     return this.parent == parent;
   }
 
+  /** How many sub-readers we are merging.
+   *  @see #getSubs */
   public int getNumSubs() {
     return numSubs;
   }
 
+  /** Returns sub-readers we are merging. */
   public EnumWithSlice[] getSubs() {
     return subs;
   }
@@ -125,7 +134,14 @@ public final class MultiDocsEnum extends
   /** Holds a {@link DocsEnum} along with the
    *  corresponding {@link ReaderSlice}. */
   public final static class EnumWithSlice {
+    EnumWithSlice() {
+    }
+
+    /** {@link DocsEnum} of this sub-reader. */
     public DocsEnum docsEnum;
+
+    /** {@link ReaderSlice} describing how this sub-reader
+     *  fits into the composite reader. */
     public ReaderSlice slice;
     
     @Override

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java Fri Sep 21 11:10:54 2012
@@ -41,6 +41,12 @@ public final class MultiTerms extends Te
   private final boolean hasPositions;
   private final boolean hasPayloads;
 
+  /** Sole constructor.
+   *
+   * @param subs The {@link Terms} instances of all sub-readers. 
+   * @param subSlices A parallel array (matching {@code
+   *        subs}) describing the sub-reader slices.
+   */
   public MultiTerms(Terms[] subs, ReaderSlice[] subSlices) throws IOException {
     this.subs = subs;
     this.subSlices = subSlices;

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java Fri Sep 21 11:10:54 2012
@@ -26,7 +26,7 @@ import java.util.Arrays;
 import java.util.Comparator;
 
 /**
- * Exposes flex API, merged from flex API of sub-segments.
+ * Exposes {@link TermsEnum} API, merged from {@link TermsEnum} API of sub-segments.
  * This does a merge sort, by term text, of the sub-readers.
  *
  * @lucene.experimental
@@ -60,14 +60,20 @@ public final class MultiTermsEnum extend
     }
   }
 
+  /** Returns how many sub-reader slices contain the current
+   *  term.  @see #getMatchArray */
   public int getMatchCount() {
     return numTop;
   }
 
+  /** Returns sub-reader slices positioned to the current term. */
   public TermsEnumWithSlice[] getMatchArray() {
     return top;
   }
 
+  /** Sole constructor.
+   *  @param slices Which sub-reader slices we should
+   *  merge. */
   public MultiTermsEnum(ReaderSlice[] slices) {
     queue = new TermMergeQueue(slices.length);
     top = new TermsEnumWithSlice[slices.length];

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java Fri Sep 21 11:10:54 2012
@@ -46,6 +46,10 @@ public final class Norm  {
   private Field field;
   private BytesRef spare;
   
+  /** Sole constructor. */
+  public Norm() {
+  }
+
   /**
    * Returns the {@link IndexableField} representation for this norm
    */

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java Fri Sep 21 11:10:54 2012
@@ -23,7 +23,13 @@ package org.apache.lucene.index;
  * @lucene.experimental
  */
 public class OrdTermState extends TermState {
+  /** Term ordinal, i.e. it's position in the full list of
+   *  sorted terms. */
   public long ord;
+
+  /** Sole constructor. */
+  public OrdTermState() {
+  }
   
   @Override
   public void copyFrom(TermState other) {

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java Fri Sep 21 11:10:54 2012
@@ -30,13 +30,26 @@ import org.apache.lucene.util.InfoStream
  * @lucene.experimental
  */
 public class PerDocWriteState {
+  /** InfoStream used for debugging. */
   public final InfoStream infoStream;
+
+  /** {@link Directory} to write all files to. */
   public final Directory directory;
+
+  /** {@link SegmentInfo} describing this segment. */
   public final SegmentInfo segmentInfo;
+
+  /** Number of bytes allocated in RAM to hold this state. */
   public final Counter bytesUsed;
+
+  /** Segment suffix to pass to {@link
+   * IndexFileNames#segmentFileName(String,String,String)}. */
   public final String segmentSuffix;
+
+  /** {@link IOContext} to use for all file writing. */
   public final IOContext context;
 
+  /** Creates a {@code PerDocWriteState}. */
   public PerDocWriteState(InfoStream infoStream, Directory directory,
       SegmentInfo segmentInfo, Counter bytesUsed,
       String segmentSuffix, IOContext context) {
@@ -48,6 +61,8 @@ public class PerDocWriteState {
     this.context = context;
   }
 
+  /** Creates a {@code PerDocWriteState}, copying fields
+   *  from another and allocating a new {@link #bytesUsed}. */
   public PerDocWriteState(SegmentWriteState state) {
     infoStream = state.infoStream;
     directory = state.directory;
@@ -57,6 +72,9 @@ public class PerDocWriteState {
     context = state.context;
   }
 
+  /** Creates a {@code PerDocWriteState}, copying fields
+   *  from another (copy constructor) but setting a new
+   *  {@link #segmentSuffix}. */
   public PerDocWriteState(PerDocWriteState state, String segmentSuffix) {
     this.infoStream = state.infoStream;
     this.directory = state.directory;

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java Fri Sep 21 11:10:54 2012
@@ -23,11 +23,20 @@ package org.apache.lucene.index;
  * @lucene.internal
  */
 public final class ReaderSlice {
+
+  /** Zero-length {@code ReaderSlice} array. */
   public static final ReaderSlice[] EMPTY_ARRAY = new ReaderSlice[0];
+
+  /** Document ID this slice starts from. */
   public final int start;
+
+  /** Number of documents in this slice. */
   public final int length;
+
+  /** Sub-reader index for this slice. */
   public final int readerIndex;
 
+  /** Sole constructor. */
   public ReaderSlice(int start, int length, int readerIndex) {
     this.start = start;
     this.length = length;

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java Fri Sep 21 11:10:54 2012
@@ -40,12 +40,21 @@ import org.apache.lucene.store.TrackingD
 public final class SegmentInfo {
   
   // TODO: remove these from this class, for now this is the representation
+  /** Used by some member fields to mean not present (e.g.,
+   *  norms, deletions). */
   public static final int NO = -1;          // e.g. no norms; no deletes;
+
+  /** Used by some member fields to mean present (e.g.,
+   *  norms, deletions). */
   public static final int YES = 1;          // e.g. have norms; have deletes;
 
-  public final String name;     // unique name in dir
+  /** Unique segment name in the directory. */
+  public final String name;
+
   private int docCount;         // number of docs in seg
-  public final Directory dir;   // where segment resides
+
+  /** Where this segment resides. */
+  public final Directory dir;
 
   private boolean isCompoundFile;
 
@@ -68,6 +77,8 @@ public final class SegmentInfo {
     this.diagnostics = diagnostics;
   }
 
+  /** Returns diagnostics saved into the segment when it was
+   *  written. */
   public Map<String, String> getDiagnostics() {
     return diagnostics;
   }
@@ -142,10 +153,13 @@ public final class SegmentInfo {
     this.codec = codec;
   }
 
+  /** Return {@link Codec} that wrote this segment. */
   public Codec getCodec() {
     return codec;
   }
 
+  /** Returns number of documents in this segment (deletions
+   *  are not taken into account). */
   public int getDocCount() {
     if (this.docCount == -1) {
       throw new IllegalStateException("docCount isn't set yet");
@@ -161,12 +175,7 @@ public final class SegmentInfo {
     this.docCount = docCount;
   }
 
-  /*
-   * Return all files referenced by this SegmentInfo.  The
-   * returns List is a locally cached List so you should not
-   * modify it.
-   */
-
+  /** Return all files referenced by this SegmentInfo. */
   public Set<String> files() {
     if (setFiles == null) {
       throw new IllegalStateException("files were not computed yet");
@@ -250,18 +259,23 @@ public final class SegmentInfo {
 
   private Set<String> setFiles;
 
+  /** Sets the files written for this segment. */
   public void setFiles(Set<String> files) {
     checkFileNames(files);
     setFiles = files;
     sizeInBytes = -1;
   }
 
+  /** Add these files to the set of files written for this
+   *  segment. */
   public void addFiles(Collection<String> files) {
     checkFileNames(files);
     setFiles.addAll(files);
     sizeInBytes = -1;
   }
 
+  /** Add this file to the set of files written for this
+   *  segment. */
   public void addFile(String file) {
     checkFileNames(Collections.singleton(file));
     setFiles.add(file);
@@ -307,6 +321,8 @@ public final class SegmentInfo {
   }
   
   /**
+   * Returns the internal codec attributes map.
+   *
    * @return internal codec attributes map. May be null if no mappings exist.
    */
   public Map<String,String> attributes() {

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java Fri Sep 21 11:10:54 2012
@@ -30,6 +30,7 @@ import org.apache.lucene.store.Directory
 
 public class SegmentInfoPerCommit {
 
+  /** The {@link SegmentInfo} that we wrap. */
   public final SegmentInfo info;
 
   // How many deleted docs in the segment:
@@ -41,6 +42,12 @@ public class SegmentInfoPerCommit {
 
   private volatile long sizeInBytes = -1;
 
+  /** Sole constructor.
+   * @param info {@link SegmentInfo} that we wrap
+   * @param delCount number of deleted documents in this segment
+   * @param delGen deletion generation number (used to name
+             deletion files)
+   **/
   public SegmentInfoPerCommit(SegmentInfo info, int delCount, long delGen) {
     this.info = info;
     this.delCount = delCount;
@@ -56,6 +63,8 @@ public class SegmentInfoPerCommit {
     sizeInBytes = -1;
   }
 
+  /** Returns total size in bytes of all files for this
+   *  segment. */
   public long sizeInBytes() throws IOException {
     if (sizeInBytes == -1) {
       final Collection<String> files = new HashSet<String>();
@@ -70,6 +79,7 @@ public class SegmentInfoPerCommit {
     return sizeInBytes;
   }
 
+  /** Returns all files in use by this segment. */
   public Collection<String> files() throws IOException {
     Collection<String> files = new HashSet<String>(info.files());
 
@@ -144,6 +154,7 @@ public class SegmentInfoPerCommit {
     assert delCount <= info.getDocCount();
   }
 
+  /** Returns a description of this segment. */
   public String toString(Directory dir, int pendingDelCount) {
     return info.toString(dir, delCount + pendingDelCount);
   }

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java?rev=1388425&r1=1388424&r2=1388425&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java Fri Sep 21 11:10:54 2012
@@ -125,11 +125,10 @@ public final class SegmentInfos implemen
    * Whenever you add a new format, make it 1 smaller (negative version logic)! */
   public static final int FORMAT_SEGMENTS_GEN_CURRENT = -2;
 
-  public int counter;    // used to name new segments
+  /** Used to name new segments. */
+  public int counter;
   
-  /**
-   * counts how often the index has been changed
-   */
+  /** Counts how often the index has been changed.  */
   public long version;
 
   private long generation;     // generation of the "segments_N" for the next commit
@@ -148,6 +147,16 @@ public final class SegmentInfos implemen
    */
   private static PrintStream infoStream = null;
 
+  /** Sole constructor. Typically you call this and then
+   *  use {@link #read(Directory) or
+   *  #read(Directory,String)} to populate each {@link
+   *  SegmentInfoPerCommit}.  Alternatively, you can add/remove your
+   *  own {@link SegmentInfoPerCommit}s. */
+  public SegmentInfos() {
+  }
+
+  /** Returns {@link SegmentInfoPerCommit} at the provided
+   *  index. */
   public SegmentInfoPerCommit info(int i) {
     return segments.get(i);
   }
@@ -326,6 +335,8 @@ public final class SegmentInfos implemen
     }
   }
 
+  /** Find the latest commit ({@code segments_N file}) and
+   *  load all {@link SegmentInfoPerCommit}s. */
   public final void read(Directory directory) throws IOException {
     generation = lastGeneration = -1;
 
@@ -530,9 +541,13 @@ public final class SegmentInfos implemen
   public long getVersion() {
     return version;
   }
+
+  /** Returns current generation. */
   public long getGeneration() {
     return generation;
   }
+
+  /** Returns last succesfully read or written generation. */
   public long getLastGeneration() {
     return lastGeneration;
   }
@@ -560,7 +575,10 @@ public final class SegmentInfos implemen
   public static void setDefaultGenLookaheadCount(int count) {
     defaultGenLookaheadCount = count;
   }
+
   /**
+   * Returns the {@code defaultGenLookaheadCount}.
+   *
    * @see #setDefaultGenLookaheadCount
    *
    * @lucene.experimental
@@ -570,6 +588,8 @@ public final class SegmentInfos implemen
   }
 
   /**
+   * Returns {@code infoStream}.
+   *
    * @see #setInfoStream
    */
   public static PrintStream getInfoStream() {
@@ -599,14 +619,18 @@ public final class SegmentInfos implemen
     
     final Directory directory;
 
+    /** Sole constructor. */ 
     public FindSegmentsFile(Directory directory) {
       this.directory = directory;
     }
 
+    /** Locate the most recent {@code segments} file and
+     *  run {@link #doBody} on it. */
     public Object run() throws IOException {
       return run(null);
     }
     
+    /** Run {@link #doBody} on the provided commit. */
     public Object run(IndexCommit commit) throws IOException {
       if (commit != null) {
         if (directory != commit.getDirectory())
@@ -973,6 +997,7 @@ public final class SegmentInfos implemen
     finishCommit(dir);
   }
 
+  /** Returns readable description of this segment. */
   public String toString(Directory directory) {
     StringBuilder buffer = new StringBuilder();
     buffer.append(getSegmentsFileName()).append(": ");
@@ -987,6 +1012,10 @@ public final class SegmentInfos implemen
     return buffer.toString();
   }
 
+  /** Return {@code userData} saved with this commit.
+   * 
+   * @see IndexWriter#commit(Map)
+   */
   public Map<String,String> getUserData() {
     return userData;
   }
@@ -1081,41 +1110,56 @@ public final class SegmentInfos implemen
   public List<SegmentInfoPerCommit> asList() {
     return Collections.unmodifiableList(segments);
   }
-  
+
+  /** Returns number of {@link SegmentInfoPerCommit}s. */
   public int size() {
     return segments.size();
   }
 
+  /** Appends the provided {@link SegmentInfoPerCommit}. */
   public void add(SegmentInfoPerCommit si) {
     segments.add(si);
   }
   
+  /** Appends the provided {@link SegmentInfoPerCommit}s. */
   public void addAll(Iterable<SegmentInfoPerCommit> sis) {
     for (final SegmentInfoPerCommit si : sis) {
       this.add(si);
     }
   }
   
+  /** Clear all {@link SegmentInfoPerCommit}s. */
   public void clear() {
     segments.clear();
   }
 
-  /** WARNING: O(N) cost */
+  /** Remove the provided {@link SegmentInfoPerCommit}.
+   *
+   * <p><b>WARNING</b>: O(N) cost */
   public void remove(SegmentInfoPerCommit si) {
     segments.remove(si);
   }
   
-  /** WARNING: O(N) cost */
+  /** Remove the {@link SegmentInfoPerCommit} at the
+   * provided index.
+   *
+   * <p><b>WARNING</b>: O(N) cost */
   void remove(int index) {
     segments.remove(index);
   }
 
-  /** WARNING: O(N) cost */
+  /** Return true if the provided {@link
+   *  SegmentInfoPerCommit} is contained.
+   *
+   * <p><b>WARNING</b>: O(N) cost */
   boolean contains(SegmentInfoPerCommit si) {
     return segments.contains(si);
   }
 
-  /** WARNING: O(N) cost */
+  /** Returns index of the provided {@link
+   *  SegmentInfoPerCommit}.
+   *
+   * <p><b>WARNING</b>: O(N) cost */
   int indexOf(SegmentInfoPerCommit si) {
     return segments.indexOf(si);
   }



Re: svn commit: r1388425 [1/2] - in /lucene/dev/branches/branch_4x/lucene: ./ core/src/java/org/apache/lucene/index/

Posted by Robert Muir <rc...@gmail.com>.
Thanks Mike! I'm not sure i've ever seen a multi-message javadocs
commit before ... I know how much work this must have been!

On Fri, Sep 21, 2012 at 7:10 AM,  <mi...@apache.org> wrote:
> Author: mikemccand
> Date: Fri Sep 21 11:10:54 2012
> New Revision: 1388425
>
> URL: http://svn.apache.org/viewvc?rev=1388425&view=rev
> Log:
> javadocs
>
> Modified:
>     lucene/dev/branches/branch_4x/lucene/build.xml
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentReadState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentReader.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentWriteState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SerialMergeScheduler.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SlowCompositeReaderWrapper.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SnapshotDeletionPolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SortedBytesMergeUtils.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/StoredFieldVisitor.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermContext.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermState.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Terms.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TermsEnum.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TieredMergePolicy.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/TwoPhaseCommitTool.java
>     lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/UpgradeIndexMergePolicy.java
>
> Modified: lucene/dev/branches/branch_4x/lucene/build.xml
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/build.xml?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/build.xml (original)
> +++ lucene/dev/branches/branch_4x/lucene/build.xml Fri Sep 21 11:10:54 2012
> @@ -263,6 +263,7 @@
>        <check-missing-javadocs dir="build/docs/core/org/apache/lucene/analysis" level="method"/>
>        <check-missing-javadocs dir="build/docs/core/org/apache/lucene/document" level="method"/>
>        <check-missing-javadocs dir="build/docs/core/org/apache/lucene/search/similarities" level="method"/>
> +      <check-missing-javadocs dir="build/docs/core/org/apache/lucene/index" level="method"/>
>      </sequential>
>    </target>
>
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/AtomicReader.java Fri Sep 21 11:10:54 2012
> @@ -48,6 +48,8 @@ public abstract class AtomicReader exten
>
>    private final AtomicReaderContext readerContext = new AtomicReaderContext(this);
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
>    protected AtomicReader() {
>      super();
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java Fri Sep 21 11:10:54 2012
> @@ -30,6 +30,7 @@ import java.util.Map;
>
>  import org.apache.lucene.codecs.BlockTreeTermsReader;
>  import org.apache.lucene.codecs.Codec;
> +import org.apache.lucene.codecs.PostingsFormat; // javadocs
>  import org.apache.lucene.document.Document;
>  import org.apache.lucene.document.FieldType; // for javadocs
>  import org.apache.lucene.index.DocValues.SortedSource;
> @@ -70,6 +71,9 @@ public class CheckIndex {
>
>    public static class Status {
>
> +    Status() {
> +    }
> +
>      /** True if no problems were found with the index. */
>      public boolean clean;
>
> @@ -134,6 +138,10 @@ public class CheckIndex {
>       * @lucene.experimental
>       */
>      public static class SegmentInfoStatus {
> +
> +      SegmentInfoStatus() {
> +      }
> +
>        /** Name of the segment. */
>        public String name;
>
> @@ -207,6 +215,9 @@ public class CheckIndex {
>       * Status from testing field norms.
>       */
>      public static final class FieldNormStatus {
> +      private FieldNormStatus() {
> +      }
> +
>        /** Number of fields successfully tested */
>        public long totFields = 0L;
>
> @@ -218,6 +229,10 @@ public class CheckIndex {
>       * Status from testing term index.
>       */
>      public static final class TermIndexStatus {
> +
> +      TermIndexStatus() {
> +      }
> +
>        /** Total term count */
>        public long termCount = 0L;
>
> @@ -230,6 +245,10 @@ public class CheckIndex {
>        /** Exception thrown during term index test (null on success) */
>        public Throwable error = null;
>
> +      /** Holds details of block allocations in the block
> +       *  tree terms dictionary (this is only set if the
> +       *  {@link PostingsFormat} for this segment uses block
> +       *  tree. */
>        public Map<String,BlockTreeTermsReader.Stats> blockTreeStats = null;
>      }
>
> @@ -237,6 +256,9 @@ public class CheckIndex {
>       * Status from testing stored fields.
>       */
>      public static final class StoredFieldStatus {
> +
> +      StoredFieldStatus() {
> +      }
>
>        /** Number of documents tested. */
>        public int docCount = 0;
> @@ -253,6 +275,9 @@ public class CheckIndex {
>       */
>      public static final class TermVectorStatus {
>
> +      TermVectorStatus() {
> +      }
> +
>        /** Number of documents tested. */
>        public int docCount = 0;
>
> @@ -267,6 +292,10 @@ public class CheckIndex {
>       * Status from testing DocValues
>       */
>      public static final class DocValuesStatus {
> +
> +      DocValuesStatus() {
> +      }
> +
>        /** Number of documents tested. */
>        public int docCount;
>        /** Total number of docValues tested. */
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CompositeReader.java Fri Sep 21 11:10:54 2012
> @@ -57,6 +57,8 @@ public abstract class CompositeReader ex
>
>    private volatile CompositeReaderContext readerContext = null; // lazy init
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
>    protected CompositeReader() {
>      super();
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java Fri Sep 21 11:10:54 2012
> @@ -47,6 +47,7 @@ public class ConcurrentMergeScheduler ex
>
>    private int mergeThreadPriority = -1;
>
> +  /** List of currently active {@link MergeThread}s. */
>    protected List<MergeThread> mergeThreads = new ArrayList<MergeThread>();
>
>    // Max number of merge threads allowed to be running at
> @@ -63,11 +64,21 @@ public class ConcurrentMergeScheduler ex
>    // throttling the incoming threads
>    private int maxMergeCount = maxThreadCount+2;
>
> +  /** {@link Directory} that holds the index. */
>    protected Directory dir;
>
> +  /** {@link IndexWriter} that owns this instance. */
>    protected IndexWriter writer;
> +
> +  /** How many {@link MergeThread}s have kicked off (this is use
> +   *  to name them). */
>    protected int mergeThreadCount;
>
> +  /** Sole constructor, with all settings set to default
> +   *  values. */
> +  public ConcurrentMergeScheduler() {
> +  }
> +
>    /** Sets the max # simultaneous merge threads that should
>     *  be running at once.  This must be <= {@link
>     *  #setMaxMergeCount}. */
> @@ -81,7 +92,9 @@ public class ConcurrentMergeScheduler ex
>      maxThreadCount = count;
>    }
>
> -  /** @see #setMaxThreadCount(int) */
> +  /** Returns {@code maxThreadCount}.
> +   *
> +   * @see #setMaxThreadCount(int) */
>    public int getMaxThreadCount() {
>      return maxThreadCount;
>    }
> @@ -129,7 +142,7 @@ public class ConcurrentMergeScheduler ex
>      updateMergeThreads();
>    }
>
> -  // Larger merges come first
> +  /** Sorts {@link MergeThread}s; larger merges come first. */
>    protected static final Comparator<MergeThread> compareByMergeDocCount = new Comparator<MergeThread>() {
>      public int compare(MergeThread t1, MergeThread t2) {
>        final MergePolicy.OneMerge m1 = t1.getCurrentMerge();
> @@ -398,6 +411,8 @@ public class ConcurrentMergeScheduler ex
>      return thread;
>    }
>
> +  /** Runs a merge thread, which may run one or more merges
> +   *  in sequence. */
>    protected class MergeThread extends Thread {
>
>      IndexWriter tWriter;
> @@ -405,19 +420,24 @@ public class ConcurrentMergeScheduler ex
>      MergePolicy.OneMerge runningMerge;
>      private volatile boolean done;
>
> +    /** Sole constructor. */
>      public MergeThread(IndexWriter writer, MergePolicy.OneMerge startMerge) {
>        this.tWriter = writer;
>        this.startMerge = startMerge;
>      }
>
> +    /** Record the currently running merge. */
>      public synchronized void setRunningMerge(MergePolicy.OneMerge merge) {
>        runningMerge = merge;
>      }
>
> +    /** Return the currently running merge. */
>      public synchronized MergePolicy.OneMerge getRunningMerge() {
>        return runningMerge;
>      }
>
> +    /** Return the current merge, or null if this {@code
> +     *  MergeThread} is done. */
>      public synchronized MergePolicy.OneMerge getCurrentMerge() {
>        if (done) {
>          return null;
> @@ -428,6 +448,7 @@ public class ConcurrentMergeScheduler ex
>        }
>      }
>
> +    /** Set the priority of this thread. */
>      public void setThreadPriority(int pri) {
>        try {
>          setPriority(pri);
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/CorruptIndexException.java Fri Sep 21 11:10:54 2012
> @@ -24,6 +24,7 @@ import java.io.IOException;
>   * an inconsistency in the index.
>   */
>  public class CorruptIndexException extends IOException {
> +  /** Sole constructor. */
>    public CorruptIndexException(String message) {
>      super(message);
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DirectoryReader.java Fri Sep 21 11:10:54 2012
> @@ -49,6 +49,8 @@ import org.apache.lucene.store.Directory
>   (non-Lucene) objects instead.
>  */
>  public abstract class DirectoryReader extends BaseCompositeReader<AtomicReader> {
> +
> +  /** Default termInfosIndexDivisor. */
>    public static final int DEFAULT_TERMS_INDEX_DIVISOR = 1;
>
>    /** The index directory. */
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocTermOrds.java Fri Sep 21 11:10:54 2012
> @@ -17,17 +17,18 @@
>
>  package org.apache.lucene.index;
>
> -import org.apache.lucene.search.DocIdSetIterator;
> -import org.apache.lucene.util.PagedBytes;
> -import org.apache.lucene.util.BytesRef;
> -import org.apache.lucene.util.Bits;
> -import org.apache.lucene.util.StringHelper;
> -
>  import java.io.IOException;
>  import java.util.ArrayList;
>  import java.util.Arrays;
> -import java.util.List;
>  import java.util.Comparator;
> +import java.util.List;
> +
> +import org.apache.lucene.codecs.PostingsFormat; // javadocs
> +import org.apache.lucene.search.DocIdSetIterator;
> +import org.apache.lucene.util.Bits;
> +import org.apache.lucene.util.BytesRef;
> +import org.apache.lucene.util.PagedBytes;
> +import org.apache.lucene.util.StringHelper;
>
>  /**
>   * This class enables fast access to multiple term ords for
> @@ -107,35 +108,57 @@ public class DocTermOrds {
>    // values 0 (end term) and 1 (index is a pointer into byte array)
>    private final static int TNUM_OFFSET = 2;
>
> -  // Default: every 128th term is indexed
> +  /** Every 128th term is indexed, by default. */
>    public final static int DEFAULT_INDEX_INTERVAL_BITS = 7; // decrease to a low number like 2 for testing
>
>    private int indexIntervalBits;
>    private int indexIntervalMask;
>    private int indexInterval;
>
> +  /** Don't uninvert terms that exceed this count. */
>    protected final int maxTermDocFreq;
>
> +  /** Field we are uninverting. */
>    protected final String field;
>
> +  /** Number of terms in the field. */
>    protected int numTermsInField;
> -  /** total number of references to term numbers */
> +
> +  /** Total number of references to term numbers. */
>    protected long termInstances;
>    private long memsz;
> -  /** total time to uninvert the field */
> +
> +  /** Total time to uninvert the field. */
>    protected int total_time;
> -  /** time for phase1 of the uninvert process */
> +
> +  /** Time for phase1 of the uninvert process. */
>    protected int phase1_time;
>
> +  /** Holds the per-document ords or a pointer to the ords. */
>    protected int[] index;
> +
> +  /** Holds term ords for documents. */
>    protected byte[][] tnums = new byte[256][];
> +
> +  /** Total bytes (sum of term lengths) for all indexed terms.*/
>    protected long sizeOfIndexedStrings;
> +
> +  /** Holds the indexed (by default every 128th) terms. */
>    protected BytesRef[] indexedTermsArray;
> +
> +  /** If non-null, only terms matching this prefix were
> +   *  indexed. */
>    protected BytesRef prefix;
> +
> +  /** Ordinal of the first term in the field, or 0 if the
> +   *  {@link PostingsFormat} does not implement {@link
> +   *  TermsEnum#ord}. */
>    protected int ordBase;
>
> -  protected DocsEnum docsEnum; //used while uninverting
> +  /** Used while uninverting. */
> +  protected DocsEnum docsEnum;
>
> +  /** Returns total bytes used. */
>    public long ramUsedInBytes() {
>      // can cache the mem size since it shouldn't change
>      if (memsz!=0) return memsz;
> @@ -217,14 +240,14 @@ public class DocTermOrds {
>    }
>
>    /**
> -   * @return The number of terms in this field
> +   * Returns the number of terms in this field
>     */
>    public int numTerms() {
>      return numTermsInField;
>    }
>
>    /**
> -   * @return Whether this <code>DocTermOrds</code> instance is empty.
> +   * Returns {@code true} if no terms were indexed.
>     */
>    public boolean isEmpty() {
>      return index == null;
> @@ -234,6 +257,9 @@ public class DocTermOrds {
>    protected void visitTerm(TermsEnum te, int termNum) throws IOException {
>    }
>
> +  /** Invoked during {@link #uninvert(AtomicReader,BytesRef)}
> +   *  to record the document frequency for each uninverted
> +   *  term. */
>    protected void setActualDocFreq(int termNum, int df) throws IOException {
>    }
>
> @@ -570,11 +596,15 @@ public class DocTermOrds {
>      return pos;
>    }
>
> +  /** Iterates over the ords for a single document. */
>    public class TermOrdsIterator {
>      private int tnum;
>      private int upto;
>      private byte[] arr;
>
> +    TermOrdsIterator() {
> +    }
> +
>      /** Buffer must be at least 5 ints long.  Returns number
>       *  of term ords placed into buffer; if this count is
>       *  less than buffer.length then that is the end. */
> @@ -620,6 +650,7 @@ public class DocTermOrds {
>        return bufferUpto;
>      }
>
> +    /** Reset the iterator on a new document. */
>      public TermOrdsIterator reset(int docID) {
>        //System.out.println("  reset docID=" + docID);
>        tnum = 0;
> @@ -810,6 +841,8 @@ public class DocTermOrds {
>      }
>    }
>
> +  /** Returns the term ({@link BytesRef}) corresponding to
> +   *  the provided ordinal. */
>    public BytesRef lookupTerm(TermsEnum termsEnum, int ord) throws IOException {
>      termsEnum.seekExact(ord);
>      return termsEnum.term();
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocValues.java Fri Sep 21 11:10:54 2012
> @@ -78,11 +78,17 @@ import org.apache.lucene.util.packed.Pac
>   */
>  public abstract class DocValues implements Closeable {
>
> +  /** Zero length DocValues array. */
>    public static final DocValues[] EMPTY_ARRAY = new DocValues[0];
>
>    private volatile SourceCache cache = new SourceCache.DirectSourceCache();
>    private final Object cacheLock = new Object();
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
> +  protected DocValues() {
> +  }
> +
>    /**
>     * Loads a new {@link Source} instance for this {@link DocValues} field
>     * instance. Source instances returned from this method are not cached. It is
> @@ -173,9 +179,12 @@ public abstract class DocValues implemen
>     * @see DocValues#getDirectSource()
>     */
>    public static abstract class Source {
> -
> +
> +    /** {@link Type} of this {@code Source}. */
>      protected final Type type;
>
> +    /** Sole constructor. (For invocation by subclass
> +     *  constructors, typically implicit.) */
>      protected Source(Type type) {
>        this.type = type;
>      }
> @@ -261,6 +270,8 @@ public abstract class DocValues implemen
>
>      private final Comparator<BytesRef> comparator;
>
> +    /** Sole constructor. (For invocation by subclass
> +     * constructors, typically implicit.) */
>      protected SortedSource(Type type, Comparator<BytesRef> comparator) {
>        super(type);
>        this.comparator = comparator;
> @@ -685,6 +696,11 @@ public abstract class DocValues implemen
>     */
>    public static abstract class SourceCache {
>
> +    /** Sole constructor. (For invocation by subclass
> +     * constructors, typically implicit.) */
> +    protected SourceCache() {
> +    }
> +
>      /**
>       * Atomically loads a {@link Source} into the cache from the given
>       * {@link DocValues} and returns it iff no other {@link Source} has already
> @@ -717,6 +733,10 @@ public abstract class DocValues implemen
>      public static final class DirectSourceCache extends SourceCache {
>        private Source ref;
>
> +      /** Sole constructor. */
> +      public DirectSourceCache() {
> +      }
> +
>        public synchronized Source load(DocValues values) throws IOException {
>          if (ref == null) {
>            ref = values.load();
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsAndPositionsEnum.java Fri Sep 21 11:10:54 2012
> @@ -31,7 +31,12 @@ public abstract class DocsAndPositionsEn
>    /** Flag to pass to  {@link TermsEnum#docsAndPositions(Bits,DocsAndPositionsEnum,int)}
>     *  if you require payloads in the returned enum. */
>    public static final int FLAG_PAYLOADS = 0x2;
> -
> +
> +  /** Sole constructor. (For invocation by subclass
> +   * constructors, typically implicit.) */
> +  protected DocsAndPositionsEnum() {
> +  }
> +
>    /** Returns the next position.  You should only call this
>     *  up to {@link DocsEnum#freq()} times else
>     *  the behavior is not defined.  If positions were not
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/DocsEnum.java Fri Sep 21 11:10:54 2012
> @@ -34,6 +34,11 @@ public abstract class DocsEnum extends D
>
>    private AttributeSource atts = null;
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
> +  protected DocsEnum() {
> +  }
> +
>    /** Returns term frequency in the current document.  Do
>     *  not call this before {@link #nextDoc} is first called,
>     *  nor after {@link #nextDoc} returns NO_MORE_DOCS.
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInfo.java Fri Sep 21 11:10:54 2012
> @@ -84,6 +84,8 @@ public final class FieldInfo {
>    };
>
>    /**
> +   * Sole Constructor.
> +   *
>     * @lucene.experimental
>     */
>    public FieldInfo(String name, boolean indexed, int number, boolean storeTermVector,
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/FieldInvertState.java Fri Sep 21 11:10:54 2012
> @@ -16,6 +16,7 @@
>   */
>  package org.apache.lucene.index;
>
> +import org.apache.lucene.analysis.TokenStream; // javadocs
>  import org.apache.lucene.util.AttributeSource;
>
>  /**
> @@ -36,10 +37,14 @@ public final class FieldInvertState {
>    float boost;
>    AttributeSource attributeSource;
>
> +  /** Creates {code FieldInvertState} for the specified
> +   *  field name. */
>    public FieldInvertState(String name) {
>      this.name = name;
>    }
>
> +  /** Creates {code FieldInvertState} for the specified
> +   *  field name and values for all fields. */
>    public FieldInvertState(String name, int position, int length, int numOverlap, int offset, float boost) {
>      this.name = name;
>      this.position = position;
> @@ -79,6 +84,7 @@ public final class FieldInvertState {
>      return length;
>    }
>
> +  /** Set length value. */
>    public void setLength(int length) {
>      this.length = length;
>    }
> @@ -91,6 +97,8 @@ public final class FieldInvertState {
>      return numOverlap;
>    }
>
> +  /** Set number of terms with {@code positionIncrement ==
> +   *  0}. */
>    public void setNumOverlap(int numOverlap) {
>      this.numOverlap = numOverlap;
>    }
> @@ -112,7 +120,8 @@ public final class FieldInvertState {
>    public float getBoost() {
>      return boost;
>    }
> -
> +
> +  /** Set boost value. */
>    public void setBoost(float boost) {
>      this.boost = boost;
>    }
> @@ -132,7 +141,10 @@ public final class FieldInvertState {
>    public int getUniqueTermCount() {
>      return uniqueTermCount;
>    }
> -
> +
> +  /** Returns the {@link AttributeSource} from the {@link
> +   *  TokenStream} that provided the indexed tokens for this
> +   *  field. */
>    public AttributeSource getAttributeSource() {
>      return attributeSource;
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Fields.java Fri Sep 21 11:10:54 2012
> @@ -25,6 +25,11 @@ import java.util.Iterator;
>
>  public abstract class Fields implements Iterable<String> {
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
> +  protected Fields() {
> +  }
> +
>    /** Returns an iterator that will step through all fields
>     *  names.  This will not return null.  */
>    public abstract Iterator<String> iterator();
> @@ -63,6 +68,7 @@ public abstract class Fields implements
>      }
>      return numTerms;
>    }
> -
> +
> +  /** Zero-length {@code Fields} array. */
>    public final static Fields[] EMPTY_ARRAY = new Fields[0];
>  }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexCommit.java Fri Sep 21 11:10:54 2012
> @@ -73,11 +73,19 @@ public abstract class IndexCommit implem
>    */
>    public abstract void delete();
>
> +  /** Returns true if this commit should be deleted; this is
> +   *  only used by {@link IndexWriter} after invoking the
> +   *  {@link IndexDeletionPolicy}. */
>    public abstract boolean isDeleted();
>
>    /** Returns number of segments referenced by this commit. */
>    public abstract int getSegmentCount();
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
> +  protected IndexCommit() {
> +  }
> +
>    /** Two IndexCommits are equal if both their Directory and versions are equal. */
>    @Override
>    public boolean equals(Object other) {
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooNewException.java Fri Sep 21 11:10:54 2012
> @@ -25,14 +25,28 @@ import org.apache.lucene.store.DataInput
>   */
>  public class IndexFormatTooNewException extends CorruptIndexException {
>
> -  /** @lucene.internal */
> +  /** Creates an {@code IndexFormatTooNewException}
> +   *
> +   *  @param resourceDesc describes the file that was too old
> +   *  @param version the version of the file that was too old
> +   *  @param minVersion the minimum version accepted
> +   *  @param maxVersion the maxium version accepted
> +   *
> +   * @lucene.internal */
>    public IndexFormatTooNewException(String resourceDesc, int version, int minVersion, int maxVersion) {
>      super("Format version is not supported (resource: " + resourceDesc + "): "
>        + version + " (needs to be between " + minVersion + " and " + maxVersion + ")");
>      assert resourceDesc != null;
>    }
>
> -  /** @lucene.internal */
> +  /** Creates an {@code IndexFormatTooNewException}
> +   *
> +   *  @param in the open file that's too old
> +   *  @param version the version of the file that was too old
> +   *  @param minVersion the minimum version accepted
> +   *  @param maxVersion the maxium version accepted
> +   *
> +   * @lucene.internal */
>    public IndexFormatTooNewException(DataInput in, int version, int minVersion, int maxVersion) {
>      this(in.toString(), version, minVersion, maxVersion);
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexFormatTooOldException.java Fri Sep 21 11:10:54 2012
> @@ -25,19 +25,36 @@ import org.apache.lucene.store.DataInput
>   */
>  public class IndexFormatTooOldException extends CorruptIndexException {
>
> -  /** @lucene.internal */
> +  /** Creates an {@code IndexFormatTooOldException}.
> +   *
> +   *  @param resourceDesc describes the file that was too old
> +   *  @param version the version of the file that was too old
> +   *
> +   * @lucene.internal */
>    public IndexFormatTooOldException(String resourceDesc, String version) {
>      super("Format version is not supported (resource: " + resourceDesc + "): " +
>          version + ". This version of Lucene only supports indexes created with release 3.0 and later.");
>      assert resourceDesc != null;
>    }
>
> -  /** @lucene.internal */
> +  /** Creates an {@code IndexFormatTooOldException}.
> +   *
> +   *  @param in the open file that's too old
> +   *  @param version the version of the file that was too old
> +   *
> +   * @lucene.internal */
>    public IndexFormatTooOldException(DataInput in, String version) {
>      this(in.toString(), version);
>    }
>
> -  /** @lucene.internal */
> +  /** Creates an {@code IndexFormatTooOldException}.
> +   *
> +   *  @param resourceDesc describes the file that was too old
> +   *  @param version the version of the file that was too old
> +   *  @param minVersion the minimum version accepted
> +   *  @param maxVersion the maxium version accepted
> +   *
> +   * @lucene.internal */
>    public IndexFormatTooOldException(String resourceDesc, int version, int minVersion, int maxVersion) {
>      super("Format version is not supported (resource: " + resourceDesc + "): " +
>          version + " (needs to be between " + minVersion + " and " + maxVersion +
> @@ -45,7 +62,14 @@ public class IndexFormatTooOldException
>      assert resourceDesc != null;
>    }
>
> -  /** @lucene.internal */
> +  /** Creates an {@code IndexFormatTooOldException}.
> +   *
> +   *  @param in the open file that's too old
> +   *  @param version the version of the file that was too old
> +   *  @param minVersion the minimum version accepted
> +   *  @param maxVersion the maxium version accepted
> +   *
> +   * @lucene.internal */
>    public IndexFormatTooOldException(DataInput in, int version, int minVersion, int maxVersion) {
>      this(in.toString(), version, minVersion, maxVersion);
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexNotFoundException.java Fri Sep 21 11:10:54 2012
> @@ -25,6 +25,8 @@ import java.io.FileNotFoundException;
>   */
>  public final class IndexNotFoundException extends FileNotFoundException {
>
> +  /** Creates IndexFileNotFoundException with the
> +   *  description message. */
>    public IndexNotFoundException(String msg) {
>      super(msg);
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexReader.java Fri Sep 21 11:10:54 2012
> @@ -89,6 +89,7 @@ public abstract class IndexReader implem
>     * @lucene.experimental
>     */
>    public static interface ReaderClosedListener {
> +    /** Invoked when the {@link IndexReader} is closed. */
>      public void onClose(IndexReader reader);
>    }
>
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexUpgrader.java Fri Sep 21 11:10:54 2012
> @@ -67,6 +67,8 @@ public final class IndexUpgrader {
>      System.exit(1);
>    }
>
> +  /** Main method to run {code IndexUpgrader} from the
> +   *  command-line. */
>    @SuppressWarnings("deprecation")
>    public static void main(String[] args) throws IOException {
>      String path = null;
> @@ -132,7 +134,8 @@ public final class IndexUpgrader {
>      this.iwc = iwc;
>      this.deletePriorCommits = deletePriorCommits;
>    }
> -
> +
> +  /** Perform the upgrade. */
>    public void upgrade() throws IOException {
>      if (!DirectoryReader.indexExists(dir)) {
>        throw new IndexNotFoundException(dir.toString());
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Fri Sep 21 11:10:54 2012
> @@ -3812,12 +3812,18 @@ public class IndexWriter implements Clos
>      return segmentInfos.size() > 0 ? segmentInfos.info(segmentInfos.size()-1) : null;
>    }
>
> -  /** @lucene.internal */
> +  /** Returns a string description of all segments, for
> +   *  debugging.
> +   *
> +   * @lucene.internal */
>    public synchronized String segString() {
>      return segString(segmentInfos);
>    }
>
> -  /** @lucene.internal */
> +  /** Returns a string description of the specified
> +   *  segments, for debugging.
> +   *
> +   * @lucene.internal */
>    public synchronized String segString(Iterable<SegmentInfoPerCommit> infos) {
>      final StringBuilder buffer = new StringBuilder();
>      for(final SegmentInfoPerCommit info : infos) {
> @@ -3829,7 +3835,10 @@ public class IndexWriter implements Clos
>      return buffer.toString();
>    }
>
> -  /** @lucene.internal */
> +  /** Returns a string description of the specified
> +   *  segment, for debugging.
> +   *
> +   * @lucene.internal */
>    public synchronized String segString(SegmentInfoPerCommit info) {
>      return info.toString(info.info.dir, numDeletedDocs(info) - info.getDelCount());
>    }
> @@ -4044,6 +4053,15 @@ public class IndexWriter implements Clos
>     * <p><b>NOTE</b>: warm is called before any deletes have
>     * been carried over to the merged segment. */
>    public static abstract class IndexReaderWarmer {
> +
> +    /** Sole constructor. (For invocation by subclass
> +     *  constructors, typically implicit.) */
> +    protected IndexReaderWarmer() {
> +    }
> +
> +    /** Invoked on the {@link AtomicReader} for the newly
> +     *  merged segment, before that segment is made visible
> +     *  to near-real-time readers. */
>      public abstract void warm(AtomicReader reader) throws IOException;
>    }
>
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/KeepOnlyLastCommitDeletionPolicy.java Fri Sep 21 11:10:54 2012
> @@ -28,6 +28,10 @@ import java.util.List;
>
>  public final class KeepOnlyLastCommitDeletionPolicy implements IndexDeletionPolicy {
>
> +  /** Sole constructor. */
> +  public KeepOnlyLastCommitDeletionPolicy() {
> +  }
> +
>    /**
>     * Deletes all commits except the most recent one.
>     */
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LiveIndexWriterConfig.java Fri Sep 21 11:10:54 2012
> @@ -46,21 +46,56 @@ public class LiveIndexWriterConfig {
>    private volatile int termIndexInterval; // TODO: this should be private to the codec, not settable here
>
>    // modified by IndexWriterConfig
> +  /** {@link IndexDeletionPolicy} controlling when commit
> +   *  points are deleted. */
>    protected volatile IndexDeletionPolicy delPolicy;
> +
> +  /** {@link IndexCommit} that {@link IndexWriter} is
> +   *  opened on. */
>    protected volatile IndexCommit commit;
> +
> +  /** {@link OpenMode} that {@link IndexWriter} is opened
> +   *  with. */
>    protected volatile OpenMode openMode;
> +
> +  /** {@link Similarity} to use when encoding norms. */
>    protected volatile Similarity similarity;
> +
> +  /** {@link MergeScheduler} to use for running merges. */
>    protected volatile MergeScheduler mergeScheduler;
> +
> +  /** Timeout when trying to obtain the write lock on init. */
>    protected volatile long writeLockTimeout;
> +
> +  /** {@link IndexingChain} that determines how documents are
> +   *  indexed. */
>    protected volatile IndexingChain indexingChain;
> +
> +  /** {@link Codec} used to write new segments. */
>    protected volatile Codec codec;
> +
> +  /** {@link InfoStream} for debugging messages. */
>    protected volatile InfoStream infoStream;
> +
> +  /** {@link MergePolicy} for selecting merges. */
>    protected volatile MergePolicy mergePolicy;
> +
> +  /** {@code DocumentsWriterPerThreadPool} to control how
> +   *  threads are allocated to {@code DocumentsWriterPerThread}. */
>    protected volatile DocumentsWriterPerThreadPool indexerThreadPool;
> +
> +  /** True if readers should be pooled. */
>    protected volatile boolean readerPooling;
> +
> +  /** {@link FlushPolicy} to control when segments are
> +   *  flushed. */
>    protected volatile FlushPolicy flushPolicy;
> +
> +  /** Sets the hard upper bound on RAM usage for a single
> +   *  segment, after which the segment is forced to flush. */
>    protected volatile int perThreadHardLimitMB;
>
> +  /** {@link Version} that {@link IndexWriter} should emulate. */
>    protected final Version matchVersion;
>
>    // used by IndexWriterConfig
> @@ -372,7 +407,9 @@ public class LiveIndexWriterConfig {
>      return this;
>    }
>
> -  /** @see #setReaderTermsIndexDivisor(int) */
> +  /** Returns the {@code termInfosIndexDivisor}.
> +   *
> +   * @see #setReaderTermsIndexDivisor(int) */
>    public int getReaderTermsIndexDivisor() {
>      return readerTermsIndexDivisor;
>    }
> @@ -494,7 +531,8 @@ public class LiveIndexWriterConfig {
>      return flushPolicy;
>    }
>
> -  /**
> +  /** Returns {@link InfoStream} used for debugging.
> +   *
>     * @see IndexWriterConfig#setInfoStream(InfoStream)
>     */
>    public InfoStream getInfoStream() {
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogByteSizeMergePolicy.java Fri Sep 21 11:10:54 2012
> @@ -34,6 +34,8 @@ public class LogByteSizeMergePolicy exte
>     *  or larger will never be merged during forceMerge.  @see setMaxMergeMBForForceMerge */
>    public static final double DEFAULT_MAX_MERGE_MB_FOR_FORCED_MERGE = Long.MAX_VALUE;
>
> +  /** Sole constructor, setting all settings to their
> +   *  defaults. */
>    public LogByteSizeMergePolicy() {
>      minMergeSize = (long) (DEFAULT_MIN_MERGE_MB*1024*1024);
>      maxMergeSize = (long) (DEFAULT_MAX_MERGE_MB*1024*1024);
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogDocMergePolicy.java Fri Sep 21 11:10:54 2012
> @@ -28,6 +28,8 @@ public class LogDocMergePolicy extends L
>    /** Default minimum segment size.  @see setMinMergeDocs */
>    public static final int DEFAULT_MIN_MERGE_DOCS = 1000;
>
> +  /** Sole constructor, setting all settings to their
> +   *  defaults. */
>    public LogDocMergePolicy() {
>      minMergeSize = DEFAULT_MIN_MERGE_DOCS;
>
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/LogMergePolicy.java Fri Sep 21 11:10:54 2012
> @@ -25,14 +25,15 @@ import java.util.Locale;
>  import java.util.Map;
>
>
> -/** <p>This class implements a {@link MergePolicy} that tries
> - *  to merge segments into levels of exponentially
> - *  increasing size, where each level has fewer segments than
> - *  the value of the merge factor. Whenever extra segments
> - *  (beyond the merge factor upper bound) are encountered,
> - *  all segments within the level are merged. You can get or
> - *  set the merge factor using {@link #getMergeFactor()} and
> - *  {@link #setMergeFactor(int)} respectively.</p>
> +/**
> + * <p>This class implements a {@link MergePolicy} that tries
> + * to merge segments into levels of exponentially
> + * increasing size, where each level has fewer segments than
> + * the value of the merge factor. Whenever extra segments
> + * (beyond the merge factor upper bound) are encountered,
> + * all segments within the level are merged. You can get or
> + * set the merge factor using {@link #getMergeFactor()} and
> + * {@link #setMergeFactor(int)} respectively.</p>
>   *
>   * <p>This class is abstract and requires a subclass to
>   * define the {@link #size} method which specifies how a
> @@ -71,32 +72,64 @@ public abstract class LogMergePolicy ext
>     */
>    public static final long DEFAULT_MAX_CFS_SEGMENT_SIZE = Long.MAX_VALUE;
>
> +  /** How many segments to merge at a time. */
>    protected int mergeFactor = DEFAULT_MERGE_FACTOR;
>
> +  /** Any segments whose size is smaller than this value
> +   *  will be rounded up to this value.  This ensures that
> +   *  tiny segments are aggressively merged. */
>    protected long minMergeSize;
> +
> +  /** If the size of a segment exceeds this value then it
> +   *  will never be merged. */
>    protected long maxMergeSize;
> +
>    // Although the core MPs set it explicitly, we must default in case someone
>    // out there wrote his own LMP ...
> +  /** If the size of a segment exceeds this value then it
> +   * will never be merged during {@link IndexWriter#forceMerge}. */
>    protected long maxMergeSizeForForcedMerge = Long.MAX_VALUE;
> +
> +  /** If a segment has more than this many documents then it
> +   *  will never be merged. */
>    protected int maxMergeDocs = DEFAULT_MAX_MERGE_DOCS;
>
> +  /** If the size of the merge segment exceesd this ratio of
> +   *  the total index size then it will remain in
> +   *  non-compound format even if {@link
> +   *  #setUseCompoundFile} is {@code true}. */
>    protected double noCFSRatio = DEFAULT_NO_CFS_RATIO;
> +
> +  /** If the size of the merged segment exceeds
> +   *  this value then it will not use compound file format. */
>    protected long maxCFSSegmentSize = DEFAULT_MAX_CFS_SEGMENT_SIZE;
>
> +  /** If true, we pro-rate a segment's size by the
> +   *  percentage of non-deleted documents. */
>    protected boolean calibrateSizeByDeletes = true;
> -
> +
> +  /** True if new segments (flushed or merged) should use
> +   *  the compound file format.  Note that large segments
> +   *  may sometimes still use non-compound format (see
> +   *  {@link #setNoCFSRatio}. */
>    protected boolean useCompoundFile = true;
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
>    public LogMergePolicy() {
>      super();
>    }
>
> +  /** Returns true if {@code LMP} is enabled in {@link
> +   *  IndexWriter}'s {@code infoStream}. */
>    protected boolean verbose() {
>      final IndexWriter w = writer.get();
>      return w != null && w.infoStream.isEnabled("LMP");
>    }
>
> -  /** @see #setNoCFSRatio */
> +  /** Returns current {@code noCFSRatio}.
> +   *
> +   *  @see #setNoCFSRatio */
>    public double getNoCFSRatio() {
>      return noCFSRatio;
>    }
> @@ -112,7 +145,9 @@ public abstract class LogMergePolicy ext
>      }
>      this.noCFSRatio = noCFSRatio;
>    }
> -
> +
> +  /** Print a debug message to {@link IndexWriter}'s {@code
> +   *  infoStream}. */
>    protected void message(String message) {
>      if (verbose()) {
>        writer.get().infoStream.message("LMP", message);
> @@ -189,8 +224,14 @@ public abstract class LogMergePolicy ext
>    @Override
>    public void close() {}
>
> +  /** Return the size of the provided {@link
> +   *  SegmentInfoPerCommit}. */
>    abstract protected long size(SegmentInfoPerCommit info) throws IOException;
>
> +  /** Return the number of documents in the provided {@link
> +   *  SegmentInfoPerCommit}, pro-rated by percentage of
> +   *  non-deleted documents if {@link
> +   *  #setCalibrateSizeByDeletes} is set. */
>    protected long sizeDocs(SegmentInfoPerCommit info) throws IOException {
>      if (calibrateSizeByDeletes) {
>        int delCount = writer.get().numDeletedDocs(info);
> @@ -200,7 +241,11 @@ public abstract class LogMergePolicy ext
>        return info.info.getDocCount();
>      }
>    }
> -
> +
> +  /** Return the byte size of the provided {@link
> +   *  SegmentInfoPerCommit}, pro-rated by percentage of
> +   *  non-deleted documents if {@link
> +   *  #setCalibrateSizeByDeletes} is set. */
>    protected long sizeBytes(SegmentInfoPerCommit info) throws IOException {
>      long byteSize = info.sizeInBytes();
>      if (calibrateSizeByDeletes) {
> @@ -213,6 +258,9 @@ public abstract class LogMergePolicy ext
>      }
>    }
>
> +  /** Returns true if the number of segments eligible for
> +   *  merging is less than or equal to the specified {@code
> +   *  maxNumSegments}. */
>    protected boolean isMerged(SegmentInfos infos, int maxNumSegments, Map<SegmentInfoPerCommit,Boolean> segmentsToMerge) throws IOException {
>      final int numSegments = infos.size();
>      int numToMerge = 0;
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java Fri Sep 21 11:10:54 2012
> @@ -71,14 +71,23 @@ public abstract class MergePolicy implem
>      long mergeGen;                  // used by IndexWriter
>      boolean isExternal;             // used by IndexWriter
>      int maxNumSegments = -1;        // used by IndexWriter
> +
> +    /** Estimated size in bytes of the merged segment. */
>      public long estimatedMergeBytes;       // used by IndexWriter
>      List<SegmentReader> readers;        // used by IndexWriter
> +
> +    /** Segments to be merged. */
>      public final List<SegmentInfoPerCommit> segments;
> +
> +    /** Number of documents in the merged segment. */
>      public final int totalDocCount;
>      boolean aborted;
>      Throwable error;
>      boolean paused;
>
> +    /** Sole constructor.
> +     * @param segments List of {@link SegmentInfoPerCommit}s
> +     *        to be merged. */
>      public OneMerge(List<SegmentInfoPerCommit> segments) {
>        if (0 == segments.size())
>          throw new RuntimeException("segments must include at least one segment");
> @@ -116,6 +125,8 @@ public abstract class MergePolicy implem
>        return aborted;
>      }
>
> +    /** Called periodically by {@link IndexWriter} while
> +     *  merging to see if the merge is aborted. */
>      public synchronized void checkAborted(Directory dir) throws MergeAbortedException {
>        if (aborted) {
>          throw new MergeAbortedException("merge is aborted: " + segString(dir));
> @@ -135,6 +146,9 @@ public abstract class MergePolicy implem
>        }
>      }
>
> +    /** Set or clear whether this merge is paused paused (for example
> +     *  {@link ConcurrentMergeScheduler} will pause merges
> +     *  if too many are running). */
>      synchronized public void setPause(boolean paused) {
>        this.paused = paused;
>        if (!paused) {
> @@ -143,10 +157,15 @@ public abstract class MergePolicy implem
>        }
>      }
>
> +    /** Returns true if this merge is paused.
> +     *
> +     *  @see #setPause(boolean) */
>      synchronized public boolean getPause() {
>        return paused;
>      }
>
> +    /** Returns a readable description of the current merge
> +     *  state. */
>      public String segString(Directory dir) {
>        StringBuilder b = new StringBuilder();
>        final int numSegments = segments.size();
> @@ -188,7 +207,8 @@ public abstract class MergePolicy implem
>        }
>        return total;
>      }
> -
> +
> +    /** Return {@link MergeInfo} describing this merge. */
>      public MergeInfo getMergeInfo() {
>        return new MergeInfo(totalDocCount, estimatedMergeBytes, isExternal, maxNumSegments);
>      }
> @@ -208,10 +228,19 @@ public abstract class MergePolicy implem
>
>      public final List<OneMerge> merges = new ArrayList<OneMerge>();
>
> +    /** Sole constructor.  Use {@link
> +     *  #add(MergePolicy.OneMerge)} to add merges. */
> +    public MergeSpecification() {
> +    }
> +
> +    /** Adds the provided {@link OneMerge} to this
> +     *  specification. */
>      public void add(OneMerge merge) {
>        merges.add(merge);
>      }
>
> +    /** Returns a description of the merges in this
> +    *  specification. */
>      public String segString(Directory dir) {
>        StringBuilder b = new StringBuilder();
>        b.append("MergeSpec:\n");
> @@ -227,15 +256,18 @@ public abstract class MergePolicy implem
>    public static class MergeException extends RuntimeException {
>      private Directory dir;
>
> +    /** Create a {@code MergeException}. */
>      public MergeException(String message, Directory dir) {
>        super(message);
>        this.dir = dir;
>      }
>
> +    /** Create a {@code MergeException}. */
>      public MergeException(Throwable exc, Directory dir) {
>        super(exc);
>        this.dir = dir;
>      }
> +
>      /** Returns the {@link Directory} of the index that hit
>       *  the exception. */
>      public Directory getDirectory() {
> @@ -248,14 +280,19 @@ public abstract class MergePolicy implem
>     *  <code>false</code>.  Normally this exception is
>     *  privately caught and suppresed by {@link IndexWriter}.  */
>    public static class MergeAbortedException extends IOException {
> +    /** Create a {@link MergeAbortedException}. */
>      public MergeAbortedException() {
>        super("merge is aborted");
>      }
> +
> +    /** Create a {@link MergeAbortedException} with a
> +     *  specified message. */
>      public MergeAbortedException(String message) {
>        super(message);
>      }
>    }
>
> +  /** {@link IndexWriter} that contains this instance. */
>    protected SetOnce<IndexWriter> writer;
>
>    @Override
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeScheduler.java Fri Sep 21 11:10:54 2012
> @@ -29,6 +29,11 @@ import java.io.IOException;
>  */
>  public abstract class MergeScheduler implements Closeable {
>
> +  /** Sole constructor. (For invocation by subclass
> +   *  constructors, typically implicit.) */
> +  protected MergeScheduler() {
> +  }
> +
>    /** Run the merges provided by {@link IndexWriter#getNextMerge()}. */
>    public abstract void merge(IndexWriter writer) throws IOException;
>
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MergeState.java Fri Sep 21 11:10:54 2012
> @@ -24,7 +24,7 @@ import org.apache.lucene.util.Bits;
>  import org.apache.lucene.util.InfoStream;
>  import org.apache.lucene.util.packed.PackedInts;
>
> -/** Holds common state used during segment merging
> +/** Holds common state used during segment merging.
>   *
>   * @lucene.experimental */
>  public class MergeState {
> @@ -35,10 +35,14 @@ public class MergeState {
>    public static abstract class DocMap {
>      private final Bits liveDocs;
>
> +    /** Sole constructor. (For invocation by subclass
> +     *  constructors, typically implicit.) */
>      protected DocMap(Bits liveDocs) {
>        this.liveDocs = liveDocs;
>      }
>
> +    /** Creates a {@link DocMap} instance appropriate for
> +     *  this reader. */
>      public static DocMap build(AtomicReader reader) {
>        final int maxDoc = reader.maxDoc();
>        final int numDeletes = reader.numDeletedDocs();
> @@ -82,6 +86,7 @@ public class MergeState {
>        return new DirectDocMap(liveDocs, docIds, del);
>      }
>
> +    /** Returns the mapped docID corresponding to the provided one. */
>      public int get(int docId) {
>        if (liveDocs == null || liveDocs.get(docId)) {
>          return remap(docId);
> @@ -90,16 +95,22 @@ public class MergeState {
>        }
>      }
>
> +    /** Returns the mapped docID corresponding to the provided one. */
>      public abstract int remap(int docId);
>
> +    /** Returns the total number of documents, ignoring
> +     *  deletions. */
>      public abstract int maxDoc();
>
> +    /** Returns the number of not-deleted documents. */
>      public final int numDocs() {
>        return maxDoc() - numDeletedDocs();
>      }
>
> +    /** Returns the number of deleted documents. */
>      public abstract int numDeletedDocs();
>
> +    /** Returns true if there are any deletions. */
>      public boolean hasDeletions() {
>        return numDeletedDocs() > 0;
>      }
> @@ -184,21 +195,45 @@ public class MergeState {
>      }
>    }
>
> +  /** {@link SegmentInfo} of the newly merged segment. */
>    public SegmentInfo segmentInfo;
> +
> +  /** {@link FieldInfos} of the newly merged segment. */
>    public FieldInfos fieldInfos;
> -  public List<AtomicReader> readers;                  // Readers being merged
> -  public DocMap[] docMaps;                            // Maps docIDs around deletions
> -  public int[] docBase;                               // New docID base per reader
> +
> +  /** Readers being merged. */
> +  public List<AtomicReader> readers;
> +
> +  /** Maps docIDs around deletions. */
> +  public DocMap[] docMaps;
> +
> +  /** New docID base per reader. */
> +  public int[] docBase;
> +
> +  /** Holds the CheckAbort instance, which is invoked
> +   *  periodically to see if the merge has been aborted. */
>    public CheckAbort checkAbort;
> +
> +  /** InfoStream for debugging messages. */
>    public InfoStream infoStream;
>
> -  // Updated per field;
> +  /** Current field being merged. */
>    public FieldInfo fieldInfo;
>
>    // TODO: get rid of this? it tells you which segments are 'aligned' (e.g. for bulk merging)
>    // but is this really so expensive to compute again in different components, versus once in SM?
> +
> +  /** {@link SegmentReader}s that have identical field
> +   * name/number mapping, so their stored fields and term
> +   * vectors may be bulk merged. */
>    public SegmentReader[] matchingSegmentReaders;
> +
> +  /** How many {@link #matchingSegmentReaders} are set. */
>    public int matchedCount;
> +
> +  /** Sole constructor. */
> +  MergeState() {
> +  }
>
>    /**
>     * Class for recording units of work when merging segments.
> @@ -207,6 +242,8 @@ public class MergeState {
>      private double workCount;
>      private final MergePolicy.OneMerge merge;
>      private final Directory dir;
> +
> +    /** Creates a #CheckAbort instance. */
>      public CheckAbort(MergePolicy.OneMerge merge, Directory dir) {
>        this.merge = merge;
>        this.dir = dir;
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsAndPositionsEnum.java Fri Sep 21 11:10:54 2012
> @@ -38,15 +38,19 @@ public final class MultiDocsAndPositions
>    int currentBase;
>    int doc = -1;
>
> +  /** Sole constructor. */
>    public MultiDocsAndPositionsEnum(MultiTermsEnum parent, int subReaderCount) {
>      this.parent = parent;
>      subDocsAndPositionsEnum = new DocsAndPositionsEnum[subReaderCount];
>    }
>
> +  /** Returns {@code true} if this instance can be reused by
> +   *  the provided {@link MultiTermsEnum}. */
>    public boolean canReuse(MultiTermsEnum parent) {
>      return this.parent == parent;
>    }
>
> +  /** Rre-use and reset this instance on the provided slices. */
>    public MultiDocsAndPositionsEnum reset(final EnumWithSlice[] subs, final int numSubs) {
>      this.numSubs = numSubs;
>      this.subs = new EnumWithSlice[subs.length];
> @@ -61,10 +65,13 @@ public final class MultiDocsAndPositions
>      return this;
>    }
>
> +  /** How many sub-readers we are merging.
> +   *  @see #getSubs */
>    public int getNumSubs() {
>      return numSubs;
>    }
>
> +  /** Returns sub-readers we are merging. */
>    public EnumWithSlice[] getSubs() {
>      return subs;
>    }
> @@ -146,7 +153,14 @@ public final class MultiDocsAndPositions
>    /** Holds a {@link DocsAndPositionsEnum} along with the
>     *  corresponding {@link ReaderSlice}. */
>    public final static class EnumWithSlice {
> +    EnumWithSlice() {
> +    }
> +
> +    /** {@link DocsAndPositionsEnum} for this sub-reader. */
>      public DocsAndPositionsEnum docsAndPositionsEnum;
> +
> +    /** {@link ReaderSlice} describing how this sub-reader
> +     *  fits into the composite reader. */
>      public ReaderSlice slice;
>
>      @Override
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiDocsEnum.java Fri Sep 21 11:10:54 2012
> @@ -22,7 +22,8 @@ import java.io.IOException;
>  import java.util.Arrays;
>
>  /**
> - * Exposes flex API, merged from flex API of sub-segments.
> + * Exposes {@link DocsEnum}, merged from {@link DocsEnum}
> + * API of sub-segments.
>   *
>   * @lucene.experimental
>   */
> @@ -37,6 +38,9 @@ public final class MultiDocsEnum extends
>    int currentBase;
>    int doc = -1;
>
> +  /** Sole constructor
> +   * @param parent The {@link MultiTermsEnum} that created us.
> +   * @param subReaderCount How many sub-readers are being merged. */
>    public MultiDocsEnum(MultiTermsEnum parent, int subReaderCount) {
>      this.parent = parent;
>      subDocsEnum = new DocsEnum[subReaderCount];
> @@ -57,14 +61,19 @@ public final class MultiDocsEnum extends
>      return this;
>    }
>
> +  /** Returns {@code true} if this instance can be reused by
> +   *  the provided {@link MultiTermsEnum}. */
>    public boolean canReuse(MultiTermsEnum parent) {
>      return this.parent == parent;
>    }
>
> +  /** How many sub-readers we are merging.
> +   *  @see #getSubs */
>    public int getNumSubs() {
>      return numSubs;
>    }
>
> +  /** Returns sub-readers we are merging. */
>    public EnumWithSlice[] getSubs() {
>      return subs;
>    }
> @@ -125,7 +134,14 @@ public final class MultiDocsEnum extends
>    /** Holds a {@link DocsEnum} along with the
>     *  corresponding {@link ReaderSlice}. */
>    public final static class EnumWithSlice {
> +    EnumWithSlice() {
> +    }
> +
> +    /** {@link DocsEnum} of this sub-reader. */
>      public DocsEnum docsEnum;
> +
> +    /** {@link ReaderSlice} describing how this sub-reader
> +     *  fits into the composite reader. */
>      public ReaderSlice slice;
>
>      @Override
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTerms.java Fri Sep 21 11:10:54 2012
> @@ -41,6 +41,12 @@ public final class MultiTerms extends Te
>    private final boolean hasPositions;
>    private final boolean hasPayloads;
>
> +  /** Sole constructor.
> +   *
> +   * @param subs The {@link Terms} instances of all sub-readers.
> +   * @param subSlices A parallel array (matching {@code
> +   *        subs}) describing the sub-reader slices.
> +   */
>    public MultiTerms(Terms[] subs, ReaderSlice[] subSlices) throws IOException {
>      this.subs = subs;
>      this.subSlices = subSlices;
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/MultiTermsEnum.java Fri Sep 21 11:10:54 2012
> @@ -26,7 +26,7 @@ import java.util.Arrays;
>  import java.util.Comparator;
>
>  /**
> - * Exposes flex API, merged from flex API of sub-segments.
> + * Exposes {@link TermsEnum} API, merged from {@link TermsEnum} API of sub-segments.
>   * This does a merge sort, by term text, of the sub-readers.
>   *
>   * @lucene.experimental
> @@ -60,14 +60,20 @@ public final class MultiTermsEnum extend
>      }
>    }
>
> +  /** Returns how many sub-reader slices contain the current
> +   *  term.  @see #getMatchArray */
>    public int getMatchCount() {
>      return numTop;
>    }
>
> +  /** Returns sub-reader slices positioned to the current term. */
>    public TermsEnumWithSlice[] getMatchArray() {
>      return top;
>    }
>
> +  /** Sole constructor.
> +   *  @param slices Which sub-reader slices we should
> +   *  merge. */
>    public MultiTermsEnum(ReaderSlice[] slices) {
>      queue = new TermMergeQueue(slices.length);
>      top = new TermsEnumWithSlice[slices.length];
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/Norm.java Fri Sep 21 11:10:54 2012
> @@ -46,6 +46,10 @@ public final class Norm  {
>    private Field field;
>    private BytesRef spare;
>
> +  /** Sole constructor. */
> +  public Norm() {
> +  }
> +
>    /**
>     * Returns the {@link IndexableField} representation for this norm
>     */
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/OrdTermState.java Fri Sep 21 11:10:54 2012
> @@ -23,7 +23,13 @@ package org.apache.lucene.index;
>   * @lucene.experimental
>   */
>  public class OrdTermState extends TermState {
> +  /** Term ordinal, i.e. it's position in the full list of
> +   *  sorted terms. */
>    public long ord;
> +
> +  /** Sole constructor. */
> +  public OrdTermState() {
> +  }
>
>    @Override
>    public void copyFrom(TermState other) {
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/PerDocWriteState.java Fri Sep 21 11:10:54 2012
> @@ -30,13 +30,26 @@ import org.apache.lucene.util.InfoStream
>   * @lucene.experimental
>   */
>  public class PerDocWriteState {
> +  /** InfoStream used for debugging. */
>    public final InfoStream infoStream;
> +
> +  /** {@link Directory} to write all files to. */
>    public final Directory directory;
> +
> +  /** {@link SegmentInfo} describing this segment. */
>    public final SegmentInfo segmentInfo;
> +
> +  /** Number of bytes allocated in RAM to hold this state. */
>    public final Counter bytesUsed;
> +
> +  /** Segment suffix to pass to {@link
> +   * IndexFileNames#segmentFileName(String,String,String)}. */
>    public final String segmentSuffix;
> +
> +  /** {@link IOContext} to use for all file writing. */
>    public final IOContext context;
>
> +  /** Creates a {@code PerDocWriteState}. */
>    public PerDocWriteState(InfoStream infoStream, Directory directory,
>        SegmentInfo segmentInfo, Counter bytesUsed,
>        String segmentSuffix, IOContext context) {
> @@ -48,6 +61,8 @@ public class PerDocWriteState {
>      this.context = context;
>    }
>
> +  /** Creates a {@code PerDocWriteState}, copying fields
> +   *  from another and allocating a new {@link #bytesUsed}. */
>    public PerDocWriteState(SegmentWriteState state) {
>      infoStream = state.infoStream;
>      directory = state.directory;
> @@ -57,6 +72,9 @@ public class PerDocWriteState {
>      context = state.context;
>    }
>
> +  /** Creates a {@code PerDocWriteState}, copying fields
> +   *  from another (copy constructor) but setting a new
> +   *  {@link #segmentSuffix}. */
>    public PerDocWriteState(PerDocWriteState state, String segmentSuffix) {
>      this.infoStream = state.infoStream;
>      this.directory = state.directory;
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/ReaderSlice.java Fri Sep 21 11:10:54 2012
> @@ -23,11 +23,20 @@ package org.apache.lucene.index;
>   * @lucene.internal
>   */
>  public final class ReaderSlice {
> +
> +  /** Zero-length {@code ReaderSlice} array. */
>    public static final ReaderSlice[] EMPTY_ARRAY = new ReaderSlice[0];
> +
> +  /** Document ID this slice starts from. */
>    public final int start;
> +
> +  /** Number of documents in this slice. */
>    public final int length;
> +
> +  /** Sub-reader index for this slice. */
>    public final int readerIndex;
>
> +  /** Sole constructor. */
>    public ReaderSlice(int start, int length, int readerIndex) {
>      this.start = start;
>      this.length = length;
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfo.java Fri Sep 21 11:10:54 2012
> @@ -40,12 +40,21 @@ import org.apache.lucene.store.TrackingD
>  public final class SegmentInfo {
>
>    // TODO: remove these from this class, for now this is the representation
> +  /** Used by some member fields to mean not present (e.g.,
> +   *  norms, deletions). */
>    public static final int NO = -1;          // e.g. no norms; no deletes;
> +
> +  /** Used by some member fields to mean present (e.g.,
> +   *  norms, deletions). */
>    public static final int YES = 1;          // e.g. have norms; have deletes;
>
> -  public final String name;     // unique name in dir
> +  /** Unique segment name in the directory. */
> +  public final String name;
> +
>    private int docCount;         // number of docs in seg
> -  public final Directory dir;   // where segment resides
> +
> +  /** Where this segment resides. */
> +  public final Directory dir;
>
>    private boolean isCompoundFile;
>
> @@ -68,6 +77,8 @@ public final class SegmentInfo {
>      this.diagnostics = diagnostics;
>    }
>
> +  /** Returns diagnostics saved into the segment when it was
> +   *  written. */
>    public Map<String, String> getDiagnostics() {
>      return diagnostics;
>    }
> @@ -142,10 +153,13 @@ public final class SegmentInfo {
>      this.codec = codec;
>    }
>
> +  /** Return {@link Codec} that wrote this segment. */
>    public Codec getCodec() {
>      return codec;
>    }
>
> +  /** Returns number of documents in this segment (deletions
> +   *  are not taken into account). */
>    public int getDocCount() {
>      if (this.docCount == -1) {
>        throw new IllegalStateException("docCount isn't set yet");
> @@ -161,12 +175,7 @@ public final class SegmentInfo {
>      this.docCount = docCount;
>    }
>
> -  /*
> -   * Return all files referenced by this SegmentInfo.  The
> -   * returns List is a locally cached List so you should not
> -   * modify it.
> -   */
> -
> +  /** Return all files referenced by this SegmentInfo. */
>    public Set<String> files() {
>      if (setFiles == null) {
>        throw new IllegalStateException("files were not computed yet");
> @@ -250,18 +259,23 @@ public final class SegmentInfo {
>
>    private Set<String> setFiles;
>
> +  /** Sets the files written for this segment. */
>    public void setFiles(Set<String> files) {
>      checkFileNames(files);
>      setFiles = files;
>      sizeInBytes = -1;
>    }
>
> +  /** Add these files to the set of files written for this
> +   *  segment. */
>    public void addFiles(Collection<String> files) {
>      checkFileNames(files);
>      setFiles.addAll(files);
>      sizeInBytes = -1;
>    }
>
> +  /** Add this file to the set of files written for this
> +   *  segment. */
>    public void addFile(String file) {
>      checkFileNames(Collections.singleton(file));
>      setFiles.add(file);
> @@ -307,6 +321,8 @@ public final class SegmentInfo {
>    }
>
>    /**
> +   * Returns the internal codec attributes map.
> +   *
>     * @return internal codec attributes map. May be null if no mappings exist.
>     */
>    public Map<String,String> attributes() {
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfoPerCommit.java Fri Sep 21 11:10:54 2012
> @@ -30,6 +30,7 @@ import org.apache.lucene.store.Directory
>
>  public class SegmentInfoPerCommit {
>
> +  /** The {@link SegmentInfo} that we wrap. */
>    public final SegmentInfo info;
>
>    // How many deleted docs in the segment:
> @@ -41,6 +42,12 @@ public class SegmentInfoPerCommit {
>
>    private volatile long sizeInBytes = -1;
>
> +  /** Sole constructor.
> +   * @param info {@link SegmentInfo} that we wrap
> +   * @param delCount number of deleted documents in this segment
> +   * @param delGen deletion generation number (used to name
> +             deletion files)
> +   **/
>    public SegmentInfoPerCommit(SegmentInfo info, int delCount, long delGen) {
>      this.info = info;
>      this.delCount = delCount;
> @@ -56,6 +63,8 @@ public class SegmentInfoPerCommit {
>      sizeInBytes = -1;
>    }
>
> +  /** Returns total size in bytes of all files for this
> +   *  segment. */
>    public long sizeInBytes() throws IOException {
>      if (sizeInBytes == -1) {
>        final Collection<String> files = new HashSet<String>();
> @@ -70,6 +79,7 @@ public class SegmentInfoPerCommit {
>      return sizeInBytes;
>    }
>
> +  /** Returns all files in use by this segment. */
>    public Collection<String> files() throws IOException {
>      Collection<String> files = new HashSet<String>(info.files());
>
> @@ -144,6 +154,7 @@ public class SegmentInfoPerCommit {
>      assert delCount <= info.getDocCount();
>    }
>
> +  /** Returns a description of this segment. */
>    public String toString(Directory dir, int pendingDelCount) {
>      return info.toString(dir, delCount + pendingDelCount);
>    }
>
> Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
> URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java?rev=1388425&r1=1388424&r2=1388425&view=diff
> ==============================================================================
> --- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java (original)
> +++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java Fri Sep 21 11:10:54 2012
> @@ -125,11 +125,10 @@ public final class SegmentInfos implemen
>     * Whenever you add a new format, make it 1 smaller (negative version logic)! */
>    public static final int FORMAT_SEGMENTS_GEN_CURRENT = -2;
>
> -  public int counter;    // used to name new segments
> +  /** Used to name new segments. */
> +  public int counter;
>
> -  /**
> -   * counts how often the index has been changed
> -   */
> +  /** Counts how often the index has been changed.  */
>    public long version;
>
>    private long generation;     // generation of the "segments_N" for the next commit
> @@ -148,6 +147,16 @@ public final class SegmentInfos implemen
>     */
>    private static PrintStream infoStream = null;
>
> +  /** Sole constructor. Typically you call this and then
> +   *  use {@link #read(Directory) or
> +   *  #read(Directory,String)} to populate each {@link
> +   *  SegmentInfoPerCommit}.  Alternatively, you can add/remove your
> +   *  own {@link SegmentInfoPerCommit}s. */
> +  public SegmentInfos() {
> +  }
> +
> +  /** Returns {@link SegmentInfoPerCommit} at the provided
> +   *  index. */
>    public SegmentInfoPerCommit info(int i) {
>      return segments.get(i);
>    }
> @@ -326,6 +335,8 @@ public final class SegmentInfos implemen
>      }
>    }
>
> +  /** Find the latest commit ({@code segments_N file}) and
> +   *  load all {@link SegmentInfoPerCommit}s. */
>    public final void read(Directory directory) throws IOException {
>      generation = lastGeneration = -1;
>
> @@ -530,9 +541,13 @@ public final class SegmentInfos implemen
>    public long getVersion() {
>      return version;
>    }
> +
> +  /** Returns current generation. */
>    public long getGeneration() {
>      return generation;
>    }
> +
> +  /** Returns last succesfully read or written generation. */
>    public long getLastGeneration() {
>      return lastGeneration;
>    }
> @@ -560,7 +575,10 @@ public final class SegmentInfos implemen
>    public static void setDefaultGenLookaheadCount(int count) {
>      defaultGenLookaheadCount = count;
>    }
> +
>    /**
> +   * Returns the {@code defaultGenLookaheadCount}.
> +   *
>     * @see #setDefaultGenLookaheadCount
>     *
>     * @lucene.experimental
> @@ -570,6 +588,8 @@ public final class SegmentInfos implemen
>    }
>
>    /**
> +   * Returns {@code infoStream}.
> +   *
>     * @see #setInfoStream
>     */
>    public static PrintStream getInfoStream() {
> @@ -599,14 +619,18 @@ public final class SegmentInfos implemen
>
>      final Directory directory;
>
> +    /** Sole constructor. */
>      public FindSegmentsFile(Directory directory) {
>        this.directory = directory;
>      }
>
> +    /** Locate the most recent {@code segments} file and
> +     *  run {@link #doBody} on it. */
>      public Object run() throws IOException {
>        return run(null);
>      }
>
> +    /** Run {@link #doBody} on the provided commit. */
>      public Object run(IndexCommit commit) throws IOException {
>        if (commit != null) {
>          if (directory != commit.getDirectory())
> @@ -973,6 +997,7 @@ public final class SegmentInfos implemen
>      finishCommit(dir);
>    }
>
> +  /** Returns readable description of this segment. */
>    public String toString(Directory directory) {
>      StringBuilder buffer = new StringBuilder();
>      buffer.append(getSegmentsFileName()).append(": ");
> @@ -987,6 +1012,10 @@ public final class SegmentInfos implemen
>      return buffer.toString();
>    }
>
> +  /** Return {@code userData} saved with this commit.
> +   *
> +   * @see IndexWriter#commit(Map)
> +   */
>    public Map<String,String> getUserData() {
>      return userData;
>    }
> @@ -1081,41 +1110,56 @@ public final class SegmentInfos implemen
>    public List<SegmentInfoPerCommit> asList() {
>      return Collections.unmodifiableList(segments);
>    }
> -
> +
> +  /** Returns number of {@link SegmentInfoPerCommit}s. */
>    public int size() {
>      return segments.size();
>    }
>
> +  /** Appends the provided {@link SegmentInfoPerCommit}. */
>    public void add(SegmentInfoPerCommit si) {
>      segments.add(si);
>    }
>
> +  /** Appends the provided {@link SegmentInfoPerCommit}s. */
>    public void addAll(Iterable<SegmentInfoPerCommit> sis) {
>      for (final SegmentInfoPerCommit si : sis) {
>        this.add(si);
>      }
>    }
>
> +  /** Clear all {@link SegmentInfoPerCommit}s. */
>    public void clear() {
>      segments.clear();
>    }
>
> -  /** WARNING: O(N) cost */
> +  /** Remove the provided {@link SegmentInfoPerCommit}.
> +   *
> +   * <p><b>WARNING</b>: O(N) cost */
>    public void remove(SegmentInfoPerCommit si) {
>      segments.remove(si);
>    }
>
> -  /** WARNING: O(N) cost */
> +  /** Remove the {@link SegmentInfoPerCommit} at the
> +   * provided index.
> +   *
> +   * <p><b>WARNING</b>: O(N) cost */
>    void remove(int index) {
>      segments.remove(index);
>    }
>
> -  /** WARNING: O(N) cost */
> +  /** Return true if the provided {@link
> +   *  SegmentInfoPerCommit} is contained.
> +   *
> +   * <p><b>WARNING</b>: O(N) cost */
>    boolean contains(SegmentInfoPerCommit si) {
>      return segments.contains(si);
>    }
>
> -  /** WARNING: O(N) cost */
> +  /** Returns index of the provided {@link
> +   *  SegmentInfoPerCommit}.
> +   *
> +   * <p><b>WARNING</b>: O(N) cost */
>    int indexOf(SegmentInfoPerCommit si) {
>      return segments.indexOf(si);
>    }
>
>



-- 
lucidworks.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org