You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2010/01/17 18:44:12 UTC

svn commit: r900166 [2/2] - in /lucene/java/branches/flex_1458: contrib/misc/src/java/org/apache/lucene/index/ contrib/misc/src/java/org/apache/lucene/misc/ contrib/queries/src/java/org/apache/lucene/search/ contrib/regex/src/java/org/apache/lucene/sea...

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictReader.java Sun Jan 17 17:44:08 2010
@@ -28,7 +28,6 @@
 import org.apache.lucene.index.FieldsEnum;
 import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.SegmentInfo;
-import org.apache.lucene.index.TermRef;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.codecs.Codec;
@@ -40,6 +39,7 @@
 import org.apache.lucene.util.CloseableThreadLocal;
 import org.apache.lucene.util.cache.Cache;
 import org.apache.lucene.util.cache.DoubleBarrelLRUCache;
+import org.apache.lucene.util.BytesRef;
 
 /** Handles a terms dict, but defers all details of postings
  *  reading to an instance of {@TermsDictDocsReader}. This
@@ -57,10 +57,10 @@
   private final String segment;
   private StandardTermsIndexReader indexReader;
 
-  private final TermRef.Comparator termComp;
+  private final BytesRef.Comparator termComp;
   
   public StandardTermsDictReader(StandardTermsIndexReader indexReader, Directory dir, FieldInfos fieldInfos, String segment, StandardDocsProducer docs, int readBufferSize,
-                                 TermRef.Comparator termComp)
+                                 BytesRef.Comparator termComp)
     throws IOException {
     
     this.segment = segment;
@@ -138,17 +138,19 @@
   public void close() throws IOException {
     try {
       try {
-        if(indexReader != null) {
+        if (indexReader != null) {
           indexReader.close();
         }
       } finally {
-        if(in != null) {
+        // null so if an app hangs on to us we still free most ram
+        indexReader = null;
+        if (in != null) {
           in.close();
         }
       }
     } finally {
       try {
-        if(docs != null) {
+        if (docs != null) {
           docs.close();
         }
       } finally {
@@ -221,7 +223,7 @@
     final StandardTermsIndexReader.FieldReader indexReader;
     private final static int DEFAULT_CACHE_SIZE = 1024;
     // Used for caching the least recently looked-up Terms
-    private final Cache<TermRef,CacheEntry> termsCache = new DoubleBarrelLRUCache<TermRef,CacheEntry>(DEFAULT_CACHE_SIZE);
+    private final Cache<BytesRef,CacheEntry> termsCache = new DoubleBarrelLRUCache<BytesRef,CacheEntry>(DEFAULT_CACHE_SIZE);
 
     FieldReader(StandardTermsIndexReader.FieldReader fieldIndexReader, FieldInfo fieldInfo, long numTerms, long termsStartPointer) {
       assert numTerms > 0;
@@ -232,7 +234,7 @@
     }
 
     @Override
-    public int docFreq(TermRef text) throws IOException {
+    public int docFreq(BytesRef text) throws IOException {
       ThreadResources resources = getThreadResources();
       if (resources.termsEnum.seek(text) == TermsEnum.SeekStatus.FOUND) {
         return resources.termsEnum.docFreq();
@@ -242,7 +244,7 @@
     }
 
     @Override
-    public TermRef.Comparator getTermComparator() {
+    public BytesRef.Comparator getComparator() {
       return termComp;
     }
 
@@ -254,7 +256,7 @@
     // own terms enum and use its seek...)
     /*
     @Override
-    public DocsEnum docs(Bits skipDocs, TermRef text) throws IOException {
+    public DocsEnum docs(Bits skipDocs, BytesRef text) throws IOException {
       ThreadResources resources = getThreadResources();
       if (resources.termsEnum.seek(text) == TermsEnum.SeekStatus.FOUND) {
         return resources.termsEnum.docs(skipDocs);
@@ -312,7 +314,7 @@
       }
 
       @Override
-      public TermRef.Comparator getTermComparator() {
+      public BytesRef.Comparator getComparator() {
         return termComp;
       }
 
@@ -321,10 +323,10 @@
        *  is found, SeekStatus.NOT_FOUND if a different term
        *  was found, SeekStatus.END if we hit EOF */
       @Override
-      public SeekStatus seek(TermRef term) throws IOException {
+      public SeekStatus seek(BytesRef term) throws IOException {
 
         CacheEntry entry = null;
-        TermRef entryKey = null;
+        BytesRef entryKey = null;
 
         if (docs.canCaptureState()) {
           entry = termsCache.get(term);
@@ -437,7 +439,7 @@
             if (docs.canCaptureState() && doSeek) {
               // Store in cache
               entry = docs.captureState();
-              entryKey = (TermRef) bytesReader.term.clone();
+              entryKey = (BytesRef) bytesReader.term.clone();
               entry.freq = docFreq;
               entry.termUpTo = termUpto;
               entry.filePointer = in.getFilePointer();
@@ -492,7 +494,7 @@
         // Now, scan:
         int left = (int) (pos - termUpto);
         while(left > 0) {
-          TermRef term = next();
+          BytesRef term = next();
           assert term != null;
           left--;
         }
@@ -502,7 +504,7 @@
       }
 
       @Override
-      public TermRef term() {
+      public BytesRef term() {
         return bytesReader.term;
       }
 
@@ -512,7 +514,7 @@
       }
 
       @Override
-      public TermRef next() throws IOException {
+      public BytesRef next() throws IOException {
         if (termUpto >= numTerms-1) {
           return null;
         }

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsDictWriter.java Sun Jan 17 17:44:08 2010
@@ -25,7 +25,7 @@
 import org.apache.lucene.index.FieldInfos;
 import org.apache.lucene.index.IndexFileNames;
 import org.apache.lucene.index.SegmentWriteState;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.codecs.Codec;
 import org.apache.lucene.index.codecs.FieldsConsumer;
 import org.apache.lucene.index.codecs.DocsConsumer;
@@ -59,12 +59,12 @@
   FieldInfo currentField;
   private final StandardTermsIndexWriter indexWriter;
   private final List<TermsConsumer> fields = new ArrayList<TermsConsumer>();
-  private final TermRef.Comparator termComp;
+  private final BytesRef.Comparator termComp;
 
   // nocommit
   private String segment;
 
-  public StandardTermsDictWriter(StandardTermsIndexWriter indexWriter, SegmentWriteState state, StandardDocsConsumer consumer, TermRef.Comparator termComp) throws IOException {
+  public StandardTermsDictWriter(StandardTermsIndexWriter indexWriter, SegmentWriteState state, StandardDocsConsumer consumer, BytesRef.Comparator termComp) throws IOException {
     final String termsFileName = IndexFileNames.segmentFileName(state.segmentName, StandardCodec.TERMS_EXTENSION);
     this.indexWriter = indexWriter;
     this.termComp = termComp;
@@ -167,12 +167,12 @@
     }
     
     @Override
-    public TermRef.Comparator getTermComparator() {
+    public BytesRef.Comparator getComparator() {
       return termComp;
     }
 
     @Override
-    public DocsConsumer startTerm(TermRef text) throws IOException {
+    public DocsConsumer startTerm(BytesRef text) throws IOException {
       consumer.startTerm();
       if (Codec.DEBUG) {
         consumer.desc = fieldInfo.name + ":" + text;
@@ -182,7 +182,7 @@
     }
 
     @Override
-    public void finishTerm(TermRef text, int numDocs) throws IOException {
+    public void finishTerm(BytesRef text, int numDocs) throws IOException {
 
       // mxx
       if (Codec.DEBUG) {

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexReader.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexReader.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexReader.java Sun Jan 17 17:44:08 2010
@@ -18,7 +18,7 @@
  */
 
 import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
 import java.util.Collection;
@@ -41,7 +41,7 @@
 
   static class TermsIndexResult {
     long position;
-    final TermRef term = new TermRef();
+    final BytesRef term = new BytesRef();
     long offset;
   };
 
@@ -52,7 +52,7 @@
      *  expects that you'll then scan the file and
      *  sequentially call isIndexTerm for each term
      *  encountered. */
-    public abstract void getIndexOffset(TermRef term, TermsIndexResult result) throws IOException;
+    public abstract void getIndexOffset(BytesRef term, TermsIndexResult result) throws IOException;
 
     public abstract void getIndexOffset(long ord, TermsIndexResult result) throws IOException;
 

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexWriter.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexWriter.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/codecs/standard/StandardTermsIndexWriter.java Sun Jan 17 17:44:08 2010
@@ -19,7 +19,7 @@
 
 import org.apache.lucene.store.IndexOutput;
 import org.apache.lucene.index.FieldInfo;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import java.io.IOException;
 
 public abstract class StandardTermsIndexWriter {
@@ -27,7 +27,7 @@
   public abstract void setTermsOutput(IndexOutput out);
 
   public abstract class FieldWriter {
-    public abstract boolean checkIndexTerm(TermRef text, int docFreq) throws IOException;
+    public abstract boolean checkIndexTerm(BytesRef text, int docFreq) throws IOException;
   }
 
   public abstract FieldWriter addField(FieldInfo fieldInfo);

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/AutomatonTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/AutomatonTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/AutomatonTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/AutomatonTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -22,7 +22,7 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.UnicodeUtil;
 import org.apache.lucene.util.automaton.Automaton;
 import org.apache.lucene.util.automaton.RunAutomaton;
@@ -68,19 +68,19 @@
   // true if this enum will not seek around
   private final boolean linearMode;
   // common suffix of the automaton
-  private final TermRef commonSuffixRef;
+  private final BytesRef commonSuffixRef;
   // true if the automaton accepts a finite language
   private final boolean finite;
   // array of sorted transitions for each state, indexed by state number
   private final Transition[][] allTransitions;
   // for path tracking: each bit is a numbered state
   private final BitSet visited;
-  // used for unicode conversion from TermRef byte[] to char[]
+  // used for unicode conversion from BytesRef byte[] to char[]
   private final UnicodeUtil.UTF16Result utf16 = new UnicodeUtil.UTF16Result();
-  // used for unicode conversion from char[] to TermRef byte[]
+  // used for unicode conversion from char[] to BytesRef byte[]
   private final UnicodeUtil.UTF8Result utf8 = new UnicodeUtil.UTF8Result();
   // the reference used for seeking forwards through the term dictionary
-  private final TermRef seekTermRef = new TermRef();
+  private final BytesRef seekBytesRef = new BytesRef();
   
   // this accept stati will be returned by accept() dependent on internal mode
   private final AcceptStatus NO_MATCH, YES_MATCH;
@@ -109,7 +109,7 @@
       this.finite = false;
       allTransitions = null;
       visited = null;
-      commonSuffixRef = new TermRef(getValidUTF16Suffix(SpecialOperations
+      commonSuffixRef = new BytesRef(getValidUTF16Suffix(SpecialOperations
           .getCommonSuffix(automaton)));
       NO_MATCH = AcceptStatus.NO;
       YES_MATCH = AcceptStatus.YES;
@@ -120,7 +120,7 @@
       // we will seek each time anyway (and take the unicode conversion hit).
       // its also currently expensive to calculate, because getCommonSuffix is 
       // a bit expensive.
-      commonSuffixRef = new TermRef("");
+      commonSuffixRef = new BytesRef("");
       // build a cache of sorted transitions for every state
       allTransitions = new Transition[runAutomaton.getSize()][];
       for (State state : this.automaton.getStates())
@@ -189,7 +189,7 @@
    * In smart mode, it will never do this.   
    */
   @Override
-  protected AcceptStatus accept(final TermRef term) {
+  protected AcceptStatus accept(final BytesRef term) {
     if (term.endsWith(commonSuffixRef)) {
       UnicodeUtil.UTF8toUTF16(term.bytes, term.offset, term.length, utf16);
       return runAutomaton.run(utf16.result, 0, utf16.length) ? YES_MATCH : NO_MATCH;
@@ -199,22 +199,22 @@
   }
   
   @Override
-  protected TermRef nextSeekTerm(final TermRef term) throws IOException {
+  protected BytesRef nextSeekTerm(final BytesRef term) throws IOException {
     if (term == null) {
       // return the first seek term
       if (linearMode) {
-        seekTermRef.copy("");
+        seekBytesRef.copy("");
       } else {
         utf16.copyText("");
         if (!nextString())
           return null;
         UnicodeUtil.nextValidUTF16String(utf16);
         UnicodeUtil.UTF16toUTF8(utf16.result, 0, utf16.length, utf8);
-        seekTermRef.bytes = utf8.result;
-        seekTermRef.offset = 0;
-        seekTermRef.length = utf8.length;
+        seekBytesRef.bytes = utf8.result;
+        seekBytesRef.offset = 0;
+        seekBytesRef.length = utf8.length;
       }
-      return seekTermRef;
+      return seekBytesRef;
     } else if (!linearMode) {
       // seek to the next possible string
       UnicodeUtil.UTF8toUTF16(term.bytes, term.offset, term.length, utf16);
@@ -222,10 +222,10 @@
         // reposition
         UnicodeUtil.nextValidUTF16String(utf16);
         UnicodeUtil.UTF16toUTF8(utf16.result, 0, utf16.length, utf8);
-        seekTermRef.bytes = utf8.result;
-        seekTermRef.offset = 0;
-        seekTermRef.length = utf8.length;
-        return seekTermRef;
+        seekBytesRef.bytes = utf8.result;
+        seekBytesRef.offset = 0;
+        seekBytesRef.length = utf8.length;
+        return seekBytesRef;
       }
     }
     // no more possible strings can match

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/EmptyTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/EmptyTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/EmptyTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/EmptyTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.TermsEnum;
 
 /**
@@ -38,13 +38,13 @@
 
   @Override
   /** Always returns {@link AcceptStatus#END}. */
-  protected AcceptStatus accept(TermRef term) {
+  protected AcceptStatus accept(BytesRef term) {
     return AcceptStatus.END;
   }
 
   /** Always returns {@link SeekStatus#END}. */
   @Override
-  public SeekStatus seek(TermRef term) {
+  public SeekStatus seek(BytesRef term) {
     return SeekStatus.END;
   }
 

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCache.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCache.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCache.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCache.java Sun Jan 17 17:44:08 2010
@@ -20,7 +20,7 @@
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.util.NumericUtils;
 import org.apache.lucene.util.RamUsageEstimator;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.document.NumericField; // for javadocs
 import org.apache.lucene.analysis.NumericTokenStream; // for javadocs
 
@@ -101,7 +101,7 @@
    */
   public interface ByteParser extends Parser {
     /** Return a single Byte representation of this field's value. */
-    public byte parseByte(TermRef term);
+    public byte parseByte(BytesRef term);
   }
 
   /** Interface to parse shorts from document fields.
@@ -109,7 +109,7 @@
    */
   public interface ShortParser extends Parser {
     /** Return a short representation of this field's value. */
-    public short parseShort(TermRef term);
+    public short parseShort(BytesRef term);
   }
 
   /** Interface to parse ints from document fields.
@@ -117,7 +117,7 @@
    */
   public interface IntParser extends Parser {
     /** Return an integer representation of this field's value. */
-    public int parseInt(TermRef term);
+    public int parseInt(BytesRef term);
   }
 
   /** Interface to parse floats from document fields.
@@ -125,7 +125,7 @@
    */
   public interface FloatParser extends Parser {
     /** Return an float representation of this field's value. */
-    public float parseFloat(TermRef term);
+    public float parseFloat(BytesRef term);
   }
 
   /** Interface to parse long from document fields.
@@ -133,7 +133,7 @@
    */
   public interface LongParser extends Parser {
     /** Return an long representation of this field's value. */
-    public long parseLong(TermRef term);
+    public long parseLong(BytesRef term);
   }
 
   /** Interface to parse doubles from document fields.
@@ -141,7 +141,7 @@
    */
   public interface DoubleParser extends Parser {
     /** Return an long representation of this field's value. */
-    public double parseDouble(TermRef term);
+    public double parseDouble(BytesRef term);
   }
 
   /** Expert: The cache used internally by sorting and range query classes. */
@@ -149,7 +149,7 @@
 
   /** The default parser for byte values, which are encoded by {@link Byte#toString(byte)} */
   public static final ByteParser DEFAULT_BYTE_PARSER = new ByteParser() {
-    public byte parseByte(TermRef term) {
+    public byte parseByte(BytesRef term) {
       final long num = FieldCacheImpl.parseLong(term);
       if (num >= Byte.MIN_VALUE && num <= Byte.MAX_VALUE) {
         return (byte) num;
@@ -168,7 +168,7 @@
 
   /** The default parser for short values, which are encoded by {@link Short#toString(short)} */
   public static final ShortParser DEFAULT_SHORT_PARSER = new ShortParser() {
-    public short parseShort(TermRef term) {
+    public short parseShort(BytesRef term) {
       final long num = FieldCacheImpl.parseLong(term);
       if (num >= Short.MIN_VALUE && num <= Short.MAX_VALUE) {
         return (short) num;
@@ -187,7 +187,7 @@
 
   /** The default parser for int values, which are encoded by {@link Integer#toString(int)} */
   public static final IntParser DEFAULT_INT_PARSER = new IntParser() {
-    public int parseInt(TermRef term) {
+    public int parseInt(BytesRef term) {
       final long num = FieldCacheImpl.parseLong(term);
       if (num >= Integer.MIN_VALUE && num <= Integer.MAX_VALUE) {
         return (int) num;
@@ -206,7 +206,7 @@
 
   /** The default parser for float values, which are encoded by {@link Float#toString(float)} */
   public static final FloatParser DEFAULT_FLOAT_PARSER = new FloatParser() {
-    public float parseFloat(TermRef term) {
+    public float parseFloat(BytesRef term) {
       // TODO: would be far better to directly parse
       // the UTF-8 bytes into float, but that's tricky?
       return Float.parseFloat(term.toString());
@@ -222,7 +222,7 @@
 
   /** The default parser for long values, which are encoded by {@link Long#toString(long)} */
   public static final LongParser DEFAULT_LONG_PARSER = new LongParser() {
-    public long parseLong(TermRef term) {
+    public long parseLong(BytesRef term) {
       return FieldCacheImpl.parseLong(term);
     }
     protected Object readResolve() {
@@ -236,7 +236,7 @@
 
   /** The default parser for double values, which are encoded by {@link Double#toString(double)} */
   public static final DoubleParser DEFAULT_DOUBLE_PARSER = new DoubleParser() {
-    public double parseDouble(TermRef term) {
+    public double parseDouble(BytesRef term) {
       // TODO: would be far better to directly parse
       // the UTF-8 bytes into float, but that's tricky?
       return Double.parseDouble(term.toString());
@@ -255,7 +255,7 @@
    * via {@link NumericField}/{@link NumericTokenStream}.
    */
   public static final IntParser NUMERIC_UTILS_INT_PARSER=new IntParser(){
-    public int parseInt(TermRef val) {
+    public int parseInt(BytesRef val) {
       final int shift = val.bytes[val.offset]-NumericUtils.SHIFT_START_INT;
       if (shift>0 && shift<=31)
         throw new FieldCacheImpl.StopFillCacheException();
@@ -275,7 +275,7 @@
    * via {@link NumericField}/{@link NumericTokenStream}.
    */
   public static final FloatParser NUMERIC_UTILS_FLOAT_PARSER=new FloatParser(){
-    public float parseFloat(TermRef term) {
+    public float parseFloat(BytesRef term) {
       final int shift = term.bytes[term.offset]-NumericUtils.SHIFT_START_INT;
       if (shift>0 && shift<=31)
         throw new FieldCacheImpl.StopFillCacheException();
@@ -295,7 +295,7 @@
    * via {@link NumericField}/{@link NumericTokenStream}.
    */
   public static final LongParser NUMERIC_UTILS_LONG_PARSER = new LongParser(){
-    public long parseLong(TermRef term) {
+    public long parseLong(BytesRef term) {
       final int shift = term.bytes[term.offset]-NumericUtils.SHIFT_START_LONG;
       if (shift>0 && shift<=63)
         throw new FieldCacheImpl.StopFillCacheException();
@@ -315,7 +315,7 @@
    * via {@link NumericField}/{@link NumericTokenStream}.
    */
   public static final DoubleParser NUMERIC_UTILS_DOUBLE_PARSER = new DoubleParser(){
-    public double parseDouble(TermRef term) {
+    public double parseDouble(BytesRef term) {
       final int shift = term.bytes[term.offset]-NumericUtils.SHIFT_START_LONG;
       if (shift>0 && shift<=63)
         throw new FieldCacheImpl.StopFillCacheException();

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCacheImpl.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCacheImpl.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCacheImpl.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FieldCacheImpl.java Sun Jan 17 17:44:08 2010
@@ -29,9 +29,7 @@
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.index.TermEnum;
-import org.apache.lucene.index.TermDocs;          // deprecated
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.Bits;
 import org.apache.lucene.util.StringHelper;
 import org.apache.lucene.util.FieldCacheSanityChecker;
@@ -288,7 +286,7 @@
         final Bits delDocs = reader.getDeletedDocs();
         try {
           while(true) {
-            final TermRef term = termsEnum.next();
+            final BytesRef term = termsEnum.next();
             if (term == null) {
               break;
             }
@@ -341,7 +339,7 @@
         final Bits delDocs = reader.getDeletedDocs();
         try {
           while(true) {
-            final TermRef term = termsEnum.next();
+            final BytesRef term = termsEnum.next();
             if (term == null) {
               break;
             }
@@ -399,7 +397,7 @@
         final Bits delDocs = reader.getDeletedDocs();
         try {
           while(true) {
-            final TermRef term = termsEnum.next();
+            final BytesRef term = termsEnum.next();
             if (term == null) {
               break;
             }
@@ -470,7 +468,7 @@
         final Bits delDocs = reader.getDeletedDocs();
         try {
           while(true) {
-            final TermRef term = termsEnum.next();
+            final BytesRef term = termsEnum.next();
             if (term == null) {
               break;
             }
@@ -536,7 +534,7 @@
         final Bits delDocs = reader.getDeletedDocs();
         try {
           while(true) {
-            final TermRef term = termsEnum.next();
+            final BytesRef term = termsEnum.next();
             if (term == null) {
               break;
             }
@@ -604,7 +602,7 @@
         final Bits delDocs = reader.getDeletedDocs();
         try {
           while(true) {
-            final TermRef term = termsEnum.next();
+            final BytesRef term = termsEnum.next();
             if (term == null) {
               break;
             }
@@ -654,7 +652,7 @@
         final TermsEnum termsEnum = terms.iterator();
         final Bits delDocs = reader.getDeletedDocs();
         while(true) {
-          final TermRef term = termsEnum.next();
+          final BytesRef term = termsEnum.next();
           if (term == null) {
             break;
           }
@@ -705,7 +703,7 @@
         final TermsEnum termsEnum = terms.iterator();
         final Bits delDocs = reader.getDeletedDocs();
         while(true) {
-          final TermRef term = termsEnum.next();
+          final BytesRef term = termsEnum.next();
           if (term == null) {
             break;
           }
@@ -754,7 +752,7 @@
   
   // Directly parses a numeric value from UTF8 bytes
   // nocommit -- whitespace?  +e syntax?
-  final static long parseLong(TermRef term) {
+  final static long parseLong(BytesRef term) {
     int upto = term.offset;
     final int negMul;
     if (term.bytes[upto] == '-') {

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FilteredTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FilteredTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FilteredTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FilteredTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -20,7 +20,7 @@
 import java.io.IOException;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.util.AttributeSource;
@@ -39,23 +39,23 @@
  */
 public abstract class FilteredTermsEnum extends TermsEnum {
 
-  private TermRef initialSeekTerm = null;
+  private BytesRef initialSeekTerm = null;
   private boolean doSeek = true;        
-  private TermRef actualTerm = null;
+  private BytesRef actualTerm = null;
 
   private final TermsEnum tenum;
 
   /** Return value, if term should be accepted or the iteration should
    * {@code END}. The {@code *_SEEK} values denote, that after handling the current term
    * the enum should call {@link nextSeekTerm()} and step forward.
-   * @see #accept(TermRef)
+   * @see #accept(BytesRef)
    */
   protected static enum AcceptStatus {YES, YES_AND_SEEK, NO, NO_AND_SEEK, END};
   
   /** Return if term is accepted, not accepted or the iteration should ended
    * (and possibly seek).
    */
-  protected abstract AcceptStatus accept(TermRef term) throws IOException;
+  protected abstract AcceptStatus accept(BytesRef term) throws IOException;
 
   /**
    * Creates a filtered {@link TermsEnum} for the given field name and reader.
@@ -75,7 +75,7 @@
   }
 
   /**
-   * Use this method to set the initial {@link TermRef}
+   * Use this method to set the initial {@link BytesRef}
    * to seek before iterating. This is a convenience method for
    * subclasses that do not override {@link #nextSeekTerm}.
    * If the initial seek term is {@code null} (default),
@@ -83,7 +83,7 @@
    * <P>You can only use this method, if you keep the default
    * implementation of {@link #nextSeekTerm}.
    */
-  protected final void setInitialSeekTerm(TermRef term) throws IOException {
+  protected final void setInitialSeekTerm(BytesRef term) throws IOException {
     this.initialSeekTerm = term;
   }
   
@@ -102,8 +102,8 @@
    * than the last enumerated term, else the behaviour of this enum
    * violates the contract for TermsEnums.
    */
-  protected TermRef nextSeekTerm(final TermRef currentTerm) throws IOException {
-    final TermRef t = initialSeekTerm;
+  protected BytesRef nextSeekTerm(final BytesRef currentTerm) throws IOException {
+    final BytesRef t = initialSeekTerm;
     initialSeekTerm = null;
     return t;
   }
@@ -121,13 +121,13 @@
   }
   
   @Override
-  public TermRef term() throws IOException {
+  public BytesRef term() throws IOException {
     return (tenum == null) ? null : tenum.term();
   }
 
   @Override
-  public TermRef.Comparator getTermComparator() throws IOException {
-    return (tenum == null) ? null : tenum.getTermComparator();
+  public BytesRef.Comparator getComparator() throws IOException {
+    return (tenum == null) ? null : tenum.getComparator();
   }
     
   @Override
@@ -139,7 +139,7 @@
    * @throws UnsupportedOperationException
    */
   @Override
-  public SeekStatus seek(TermRef term) throws IOException {
+  public SeekStatus seek(BytesRef term) throws IOException {
     throw new UnsupportedOperationException(getClass().getName()+" does not support seeking");
   }
 
@@ -162,14 +162,14 @@
   }
     
   @Override
-  public TermRef next() throws IOException {
+  public BytesRef next() throws IOException {
     if (tenum == null)
       return null;
     for (;;) {
       // Seek or forward the iterator
       if (doSeek) {
         doSeek = false;
-        final TermRef t = nextSeekTerm(actualTerm);
+        final BytesRef t = nextSeekTerm(actualTerm);
         if (t == null || tenum.seek(t) == SeekStatus.END) {
           // no more terms to seek to or enum exhausted
           return null;

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyQuery.java Sun Jan 17 17:44:08 2010
@@ -19,7 +19,6 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.util.ToStringUtils;
 

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/FuzzyTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -19,7 +19,7 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 
 import java.io.IOException;
 
@@ -121,22 +121,22 @@
 
     this.text = searchTerm.text().substring(realPrefixLength);
     this.prefix = searchTerm.text().substring(0, realPrefixLength);
-    prefixTermRef = new TermRef(prefix);
+    prefixBytesRef = new BytesRef(prefix);
     initializeMaxDistances();
     this.d = initDistanceArray();
 
-    setInitialSeekTerm(prefixTermRef);
+    setInitialSeekTerm(prefixBytesRef);
   }
 
-  private final TermRef prefixTermRef;
+  private final BytesRef prefixBytesRef;
 
   /**
    * The termCompare method in FuzzyTermEnum uses Levenshtein distance to 
    * calculate the distance between the given term and the comparing term. 
    */
   @Override
-  protected final AcceptStatus accept(TermRef term) {
-    if (term.startsWith(prefixTermRef)) {
+  protected final AcceptStatus accept(BytesRef term) {
+    if (term.startsWith(prefixBytesRef)) {
       // TODO: costly that we create intermediate String:
       final String target = term.toString().substring(prefix.length());
       final float similarity = similarity(target);

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiPhraseQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiPhraseQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiPhraseQuery.java Sun Jan 17 17:44:08 2010
@@ -24,7 +24,7 @@
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.PositionsEnum;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.ToStringUtils;
 import org.apache.lucene.util.PriorityQueue;
 import org.apache.lucene.util.Bits;
@@ -180,7 +180,7 @@
         } else {
           docsEnum = reader.termDocsEnum(reader.getDeletedDocs(),
                                          terms[0].field(),
-                                         new TermRef(terms[0].text()));
+                                         new BytesRef(terms[0].text()));
         }
 
         if (docsEnum == null) {
@@ -461,7 +461,7 @@
     for (int i = 0; i < terms.length; i++) {
       DocsEnum docs = indexReader.termDocsEnum(delDocs,
                                                terms[i].field(),
-                                               new TermRef(terms[i].text()));
+                                               new BytesRef(terms[i].text()));
       if (docs != null) {
         docsEnums.add(docs);
       }

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java Sun Jan 17 17:44:08 2010
@@ -20,12 +20,11 @@
 import java.io.IOException;
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.PriorityQueue;
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.queryParser.QueryParser; // for javadoc
 import org.apache.lucene.util.Attribute;
@@ -183,7 +182,7 @@
           throw new NullPointerException("If you implement getTermsEnum(), you must specify a non-null field in the constructor of MultiTermQuery.");
         collector.boostAtt = boostAtt;
         int count = 0;
-        TermRef term;
+        BytesRef term;
         final Term placeholderTerm = new Term(query.field);
         while ((term = termsEnum.next()) != null) {
           if (collector.collect(placeholderTerm.createTerm(term.toString()), boostAtt.getBoost())) {
@@ -464,7 +463,7 @@
         // should not be costly, because 1) the
         // query/filter will load the TermInfo when it
         // runs, and 2) the terms dict has a cache:
-        // @deprecated: in 4.0 use TermRef for collectTerms()
+        // @deprecated: in 4.0 use BytesRef for collectTerms()
         docVisitCount += reader.docFreq(t);
         return true;
       }

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQueryWrapperFilter.java Sun Jan 17 17:44:08 2010
@@ -23,7 +23,6 @@
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.TermDocs;
 import org.apache.lucene.index.TermEnum;
-import org.apache.lucene.index.TermRef;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.util.OpenBitSet;

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/NumericRangeQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/NumericRangeQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/NumericRangeQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/NumericRangeQuery.java Sun Jan 17 17:44:08 2010
@@ -24,10 +24,8 @@
 import org.apache.lucene.document.NumericField; // for javadocs
 import org.apache.lucene.util.NumericUtils;
 import org.apache.lucene.util.ToStringUtils;
-import org.apache.lucene.util.StringHelper;
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.TermsEnum;
 
 /**
@@ -381,10 +379,10 @@
    */
   private final class NumericRangeTermsEnum extends FilteredTermsEnum {
 
-    private final TermRef currentLowerBound = new TermRef(), currentUpperBound = new TermRef();
+    private final BytesRef currentLowerBound = new BytesRef(), currentUpperBound = new BytesRef();
 
     private final LinkedList<String> rangeBounds = new LinkedList<String>();
-    private final TermRef.Comparator termComp;
+    private final BytesRef.Comparator termComp;
 
     NumericRangeTermsEnum(final IndexReader reader) throws IOException {
       super(reader, getField());
@@ -464,11 +462,11 @@
           throw new IllegalArgumentException("valSize must be 32 or 64");
       }
 
-      termComp = getTermComparator();
+      termComp = getComparator();
     }
     
     @Override
-    protected final TermRef nextSeekTerm(TermRef term) throws IOException {
+    protected final BytesRef nextSeekTerm(BytesRef term) throws IOException {
       if (rangeBounds.size() >= 2) {
         assert rangeBounds.size() % 2 == 0;
 
@@ -486,7 +484,7 @@
     }
     
     @Override
-    protected AcceptStatus accept(TermRef term) {
+    protected AcceptStatus accept(BytesRef term) {
       return (currentUpperBound != null && termComp.compare(term, currentUpperBound) <= 0) ?
         AcceptStatus.YES : AcceptStatus.NO_AND_SEEK;
     }

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PhraseQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PhraseQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PhraseQuery.java Sun Jan 17 17:44:08 2010
@@ -22,7 +22,7 @@
 import java.util.ArrayList;
 
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.search.Explanation.IDFExplanation;
@@ -158,7 +158,7 @@
         final Term t = terms.get(i);
         DocsEnum docsEnum = reader.termDocsEnum(delDocs,
                                                 t.field(),
-                                                new TermRef(t.text()));
+                                                new BytesRef(t.text()));
         if (docsEnum == null) {
           return null;
         }

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PrefixTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PrefixTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PrefixTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/PrefixTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -21,7 +21,7 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Subclass of FilteredTermEnum for enumerating all terms that match the
@@ -32,15 +32,15 @@
  */
 public class PrefixTermsEnum extends FilteredTermsEnum {
 
-  private final TermRef prefixRef;
+  private final BytesRef prefixRef;
 
   public PrefixTermsEnum(IndexReader reader, Term prefix) throws IOException {
     super(reader, prefix.field());
-    setInitialSeekTerm(prefixRef = new TermRef(prefix.text()));
+    setInitialSeekTerm(prefixRef = new BytesRef(prefix.text()));
   }
 
   @Override
-  protected AcceptStatus accept(TermRef term) {
+  protected AcceptStatus accept(BytesRef term) {
     if (term.startsWith(prefixRef)) {
       return AcceptStatus.YES;
     } else {

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/SingleTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/SingleTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/SingleTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/SingleTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -21,8 +21,7 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
-import org.apache.lucene.index.Terms;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Subclass of FilteredTermsEnum for enumerating a single term.
@@ -32,7 +31,7 @@
  * {@link MultiTermQuery#rewriteMethod}.
  */
 public final class SingleTermsEnum extends FilteredTermsEnum {
-  private final TermRef singleRef;
+  private final BytesRef singleRef;
   
   /**
    * Creates a new <code>SingleTermsEnum</code>.
@@ -42,12 +41,12 @@
    */
   public SingleTermsEnum(IndexReader reader, Term singleTerm) throws IOException {
     super(reader, singleTerm.field());
-    singleRef = new TermRef(singleTerm.text());
+    singleRef = new BytesRef(singleTerm.text());
     setInitialSeekTerm(singleRef);
   }
 
   @Override
-  protected AcceptStatus accept(TermRef term) {
+  protected AcceptStatus accept(BytesRef term) {
     return term.equals(singleRef) ? AcceptStatus.YES : AcceptStatus.END;
   }
   

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermQuery.java Sun Jan 17 17:44:08 2010
@@ -22,7 +22,7 @@
 
 import org.apache.lucene.index.DocsEnum;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.search.Explanation.IDFExplanation;
 import org.apache.lucene.util.ToStringUtils;
@@ -72,7 +72,7 @@
 
     @Override
     public Scorer scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer) throws IOException {
-      DocsEnum docs = reader.termDocsEnum(reader.getDeletedDocs(), term.field(), new TermRef(term.text()));
+      DocsEnum docs = reader.termDocsEnum(reader.getDeletedDocs(), term.field(), new BytesRef(term.text()));
       if (docs == null) {
         return null;
       }
@@ -115,7 +115,7 @@
 
       Explanation tfExplanation = new Explanation();
       int tf = 0;
-      DocsEnum docs = reader.termDocsEnum(reader.getDeletedDocs(), term.field(), new TermRef(term.text()));
+      DocsEnum docs = reader.termDocsEnum(reader.getDeletedDocs(), term.field(), new BytesRef(term.text()));
       if (docs != null) {
           int newDoc = docs.advance(doc);
           if (newDoc == doc) {

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermRangeTermsEnum.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermRangeTermsEnum.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermRangeTermsEnum.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/TermRangeTermsEnum.java Sun Jan 17 17:44:08 2010
@@ -21,8 +21,7 @@
 import java.text.Collator;
 
 import org.apache.lucene.index.IndexReader;
-import org.apache.lucene.index.TermRef;
-import org.apache.lucene.util.StringHelper;
+import org.apache.lucene.util.BytesRef;
 
 /**
  * Subclass of FilteredTermEnum for enumerating all terms that match the
@@ -38,9 +37,9 @@
   private String lowerTermText;
   private boolean includeLower;
   private boolean includeUpper;
-  final private TermRef lowerTermRef;
-  final private TermRef upperTermRef;
-  private final TermRef.Comparator termComp;
+  final private BytesRef lowerBytesRef;
+  final private BytesRef upperBytesRef;
+  private final BytesRef.Comparator termComp;
 
   /**
    * Enumerates all terms greater/equal than <code>lowerTerm</code>
@@ -84,28 +83,28 @@
       this.lowerTermText = "";
       this.includeLower = true;
     }
-    lowerTermRef = new TermRef(this.lowerTermText);
+    lowerBytesRef = new BytesRef(this.lowerTermText);
 
     if (this.upperTermText == null) {
       this.includeUpper = true;
-      upperTermRef = null;
+      upperBytesRef = null;
     } else {
-      upperTermRef = new TermRef(upperTermText);
+      upperBytesRef = new BytesRef(upperTermText);
     }
 
-    TermRef startTermRef = (collator == null) ? lowerTermRef : new TermRef("");
-    setInitialSeekTerm(startTermRef);
-    termComp = getTermComparator();
+    BytesRef startBytesRef = (collator == null) ? lowerBytesRef : new BytesRef("");
+    setInitialSeekTerm(startBytesRef);
+    termComp = getComparator();
   }
 
   @Override
-  protected AcceptStatus accept(TermRef term) {
+  protected AcceptStatus accept(BytesRef term) {
     if (collator == null) {
-      if (!this.includeLower && term.equals(lowerTermRef))
+      if (!this.includeLower && term.equals(lowerBytesRef))
         return AcceptStatus.NO;
       // Use this field's default sort ordering
-      if (upperTermRef != null) {
-        final int cmp = termComp.compare(upperTermRef, term);
+      if (upperBytesRef != null) {
+        final int cmp = termComp.compare(upperBytesRef, term);
         /*
          * if beyond the upper term, or is exclusive and this is equal to
          * the upper term, break out

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/spans/SpanTermQuery.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/spans/SpanTermQuery.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/spans/SpanTermQuery.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/spans/SpanTermQuery.java Sun Jan 17 17:44:08 2010
@@ -19,7 +19,7 @@
 
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.ToStringUtils;
 
 import java.io.IOException;
@@ -83,7 +83,7 @@
   public Spans getSpans(final IndexReader reader) throws IOException {
     return new TermSpans(reader.termDocsEnum(reader.getDeletedDocs(),
                                              term.field(),
-                                             new TermRef(term.text())), term);
+                                             new BytesRef(term.text())), term);
   }
 
 }

Added: lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/BytesRef.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/BytesRef.java?rev=900166&view=auto
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/BytesRef.java (added)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/BytesRef.java Sun Jan 17 17:44:08 2010
@@ -0,0 +1,250 @@
+package org.apache.lucene.util;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.UnsupportedEncodingException;
+
+/** Represents byte[], as a slice (offset + length) into an
+ *  existing byte[]. */
+public final class BytesRef {
+
+  public byte[] bytes;
+  public int offset;
+  public int length;
+
+  public BytesRef() {
+  }
+
+  /**
+   * @param text Initialize the byte[] from the UTF8 bytes
+   * for the provided Sring.  This must be well-formed
+   * unicode text, with no unpaired surrogates or U+FFFF.
+   */
+  public BytesRef(String text) {
+    copy(text);
+  }
+
+  public BytesRef(BytesRef other) {
+    copy(other);
+  }
+
+  // nocommit: we could do this w/ UnicodeUtil w/o requiring
+  // allocation of new bytes[]?
+  /**
+   * Copies the UTF8 bytes for this string.
+   * 
+   * @param text Must be well-formed unicode text, with no
+   * unpaired surrogates or U+FFFF.
+   */
+  public void copy(String text) {
+    // nocommit -- assert text has no unpaired surrogates??
+    try {
+      bytes = text.getBytes("UTF-8");
+    } catch (UnsupportedEncodingException uee) {
+      // should not happen:
+      throw new RuntimeException("unable to encode to UTF-8");
+    }
+    offset = 0;
+    length = bytes.length;
+  }
+
+  public boolean bytesEquals(BytesRef other) {
+    if (length == other.length) {
+      int upto = offset;
+      int otherUpto = other.offset;
+      final byte[] otherBytes = other.bytes;
+      for(int i=0;i<length;i++) {
+        if (bytes[upto++] != otherBytes[otherUpto++]) {
+          return false;
+        }
+      }
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  @Override
+  public Object clone() {
+    BytesRef other = new BytesRef();
+    other.bytes = new byte[length];
+    System.arraycopy(bytes, offset, other.bytes, 0, length);
+    other.length = length;
+    return other;
+  }
+
+  public boolean startsWith(BytesRef other, int pos) {
+    // nocommit: maybe this one shouldn't be public...
+    if (pos < 0 || length - pos < other.length) {
+      return false;
+    }
+    int i = offset + pos;
+    int j = other.offset;
+    final int k = other.offset + other.length;
+    
+    while (j < k)
+      if (bytes[i++] != other.bytes[j++])
+        return false;
+    
+    return true;
+  }
+  
+  public boolean startsWith(BytesRef other) {
+    return startsWith(other, 0);
+  }
+
+  public boolean endsWith(BytesRef other) {
+    return startsWith(other, length - other.length);   
+  }
+  
+  @Override
+  public int hashCode() {
+    final int prime = 31;
+    int result = 1;
+    result = prime * result + hash(bytes);
+    return result;
+  }
+  
+  private int hash(byte a[]) {
+    if (a == null) {
+      return 0;
+    }
+    int result = 1;
+    int upTo = offset;
+    for(int i = 0; i < length; i++) {
+      result = 31 * result + bytes[upTo++];
+    }
+    return result;
+  }
+
+  @Override
+  public boolean equals(Object other) {
+    return this.bytesEquals((BytesRef) other);
+  }
+
+  @Override
+  public String toString() {
+    try {
+      return new String(bytes, offset, length, "UTF-8");
+    } catch (UnsupportedEncodingException uee) {
+      // should not happen
+      throw new RuntimeException(uee);
+    }
+  }
+
+  public String toBytesString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append('[');
+    final int end = offset + length;
+    for(int i=offset;i<end;i++) {
+      if (i > offset) {
+        sb.append(' ');
+      }
+      sb.append(Integer.toHexString(bytes[i]&0xff));
+    }
+    sb.append(']');
+    return sb.toString();
+  }
+
+  private final String asUnicodeChar(char c) {
+    return "U+" + Integer.toHexString(c);
+  }
+
+  // for debugging only -- this is slow
+  public String toUnicodeString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append('[');
+    final String s = toString();
+    for(int i=0;i<s.length();i++) {
+      if (i > 0) {
+        sb.append(' ');
+      }
+      sb.append(asUnicodeChar(s.charAt(i)));
+    }
+    sb.append(']');
+    return sb.toString();
+  }
+
+  public void copy(BytesRef other) {
+    if (bytes == null) {
+      bytes = new byte[other.length];
+    } else {
+      bytes = ArrayUtil.grow(bytes, other.length);
+    }
+    System.arraycopy(other.bytes, other.offset, bytes, 0, other.length);
+    length = other.length;
+    offset = 0;
+  }
+
+  public void grow(int newLength) {
+    bytes = ArrayUtil.grow(bytes, newLength);
+  }
+
+  public abstract static class Comparator {
+    abstract public int compare(BytesRef a, BytesRef b);
+  }
+
+  private final static Comparator utf8SortedAsUTF16SortOrder = new UTF8SortedAsUTF16Comparator();
+
+  public static Comparator getUTF8SortedAsUTF16Comparator() {
+    return utf8SortedAsUTF16SortOrder;
+  }
+
+  public static class UTF8SortedAsUTF16Comparator extends Comparator {
+    public int compare(BytesRef a, BytesRef b) {
+
+      final byte[] aBytes = a.bytes;
+      int aUpto = a.offset;
+      final byte[] bBytes = b.bytes;
+      int bUpto = b.offset;
+      
+      final int aStop;
+      if (a.length < b.length) {
+        aStop = aUpto + a.length;
+      } else {
+        aStop = aUpto + b.length;
+      }
+
+      while(aUpto < aStop) {
+        int aByte = aBytes[aUpto++] & 0xff;
+        int bByte = bBytes[bUpto++] & 0xff;
+
+        if (aByte != bByte) {
+
+          // See http://icu-project.org/docs/papers/utf16_code_point_order.html#utf-8-in-utf-16-order
+
+          // We know the terms are not equal, but, we may
+          // have to carefully fixup the bytes at the
+          // difference to match UTF16's sort order:
+          if (aByte >= 0xee && bByte >= 0xee) {
+            if ((aByte & 0xfe) == 0xee) {
+              aByte += 0x10;
+            }
+            if ((bByte&0xfe) == 0xee) {
+              bByte += 0x10;
+            }
+          }
+          return aByte - bByte;
+        }
+      }
+
+      // One is a prefix of the other, or, they are equal:
+      return a.length - b.length;
+    }
+  }
+}

Propchange: lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/BytesRef.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/NumericUtils.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/NumericUtils.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/NumericUtils.java (original)
+++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/util/NumericUtils.java Sun Jan 17 17:44:08 2010
@@ -21,7 +21,6 @@
 import org.apache.lucene.document.NumericField; // for javadocs
 import org.apache.lucene.search.NumericRangeQuery; // for javadocs
 import org.apache.lucene.search.NumericRangeFilter; // for javadocs
-import org.apache.lucene.index.TermRef;
 
 /**
  * This is a helper class to generate prefix-encoded representations for numerical values
@@ -220,7 +219,7 @@
     return (sortableBits << shift) ^ 0x8000000000000000L;
   }
 
-  public static long prefixCodedToLong(final TermRef term) {
+  public static long prefixCodedToLong(final BytesRef term) {
     final int shift = term.bytes[term.offset]-SHIFT_START_LONG;
     if (shift>63 || shift<0)
       throw new NumberFormatException("Invalid shift value in prefixCoded string (is encoded value really an INT?)");
@@ -267,7 +266,7 @@
     return (sortableBits << shift) ^ 0x80000000;
   }
 
-  public static int prefixCodedToInt(final TermRef term) {
+  public static int prefixCodedToInt(final BytesRef term) {
     final int shift = term.bytes[term.offset]-SHIFT_START_INT;
     if (shift>31 || shift<0)
       throw new NumberFormatException("Invalid shift value in prefixCoded string (is encoded value really an INT?)");

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/TestExternalCodecs.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/TestExternalCodecs.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/TestExternalCodecs.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/TestExternalCodecs.java Sun Jan 17 17:44:08 2010
@@ -37,9 +37,9 @@
   // For fun, test that we can override how terms are
   // sorted, and basic things still work -- this comparator
   // sorts in reversed unicode code point order:
-  private static final TermRef.Comparator reverseUnicodeComparator = new TermRef.Comparator() {
+  private static final BytesRef.Comparator reverseUnicodeComparator = new BytesRef.Comparator() {
       @Override
-      public int compare(TermRef t1, TermRef t2) {
+      public int compare(BytesRef t1, BytesRef t2) {
         byte[] b1 = t1.bytes;
         byte[] b2 = t2.bytes;
         int b1Stop;
@@ -110,7 +110,7 @@
       }
 
       @Override
-      public TermRef.Comparator getTermComparator() {
+      public BytesRef.Comparator getComparator() {
         return reverseUnicodeComparator;
       }
     }
@@ -166,7 +166,7 @@
       }
       
       @Override
-      public DocsConsumer startTerm(TermRef text) {
+      public DocsConsumer startTerm(BytesRef text) {
         final String term = text.toString();
         current = new RAMTerm(term);
         docsConsumer.reset(current);
@@ -175,12 +175,12 @@
 
       
       @Override
-      public TermRef.Comparator getTermComparator() {
-        return TermRef.getUTF8SortedAsUTF16Comparator();
+      public BytesRef.Comparator getComparator() {
+        return BytesRef.getUTF8SortedAsUTF16Comparator();
       }
 
       @Override
-      public void finishTerm(TermRef text, int numDocs) {
+      public void finishTerm(BytesRef text, int numDocs) {
         // nocommit -- are we even called when numDocs == 0?
         if (numDocs > 0) {
           assert numDocs == current.docs.size();
@@ -270,12 +270,12 @@
       }
       
       @Override
-      public TermRef.Comparator getTermComparator() {
-        return TermRef.getUTF8SortedAsUTF16Comparator();
+      public BytesRef.Comparator getComparator() {
+        return BytesRef.getUTF8SortedAsUTF16Comparator();
       }
 
       @Override
-      public TermRef next() {
+      public BytesRef next() {
         if (it == null) {
           if (current == null) {
             it = ramField.termToDocs.keySet().iterator();
@@ -285,14 +285,14 @@
         }
         if (it.hasNext()) {
           current = it.next();
-          return new TermRef(current);
+          return new BytesRef(current);
         } else {
           return null;
         }
       }
 
       @Override
-      public SeekStatus seek(TermRef term) {
+      public SeekStatus seek(BytesRef term) {
         current = term.toString();
         if (ramField.termToDocs.containsKey(current)) {
           return SeekStatus.FOUND;
@@ -317,9 +317,9 @@
       }
 
       @Override
-      public TermRef term() {
-        // TODO: reuse TermRef
-        return new TermRef(current);
+      public BytesRef term() {
+        // TODO: reuse BytesRef
+        return new BytesRef(current);
       }
 
       @Override
@@ -824,20 +824,20 @@
   private void testTermsOrder(IndexReader r) throws Exception {
 
     // Verify sort order matches what my comparator said:
-    TermRef lastTermRef = null;
+    BytesRef lastBytesRef = null;
     TermsEnum terms = r.fields().terms("id").iterator();
     //System.out.println("id terms:");
     while(true) {
-      TermRef t = terms.next();
+      BytesRef t = terms.next();
       if (t == null) {
         break;
       }
       //System.out.println("  " + t);
-      if (lastTermRef == null) {
-        lastTermRef = new TermRef(t);
+      if (lastBytesRef == null) {
+        lastBytesRef = new BytesRef(t);
       } else {
-        assertTrue("terms in wrong order last=" + lastTermRef + " current=" + t, reverseUnicodeComparator.compare(lastTermRef, t) < 0);
-        lastTermRef.copy(t);
+        assertTrue("terms in wrong order last=" + lastBytesRef + " current=" + t, reverseUnicodeComparator.compare(lastBytesRef, t) < 0);
+        lastBytesRef.copy(t);
       }
     }
   }

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/FlexTestUtil.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/FlexTestUtil.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/FlexTestUtil.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/FlexTestUtil.java Sun Jan 17 17:44:08 2010
@@ -133,7 +133,7 @@
       TermsEnum terms = fields.terms();
       final TermPositions termPos = r.termPositions();
       while(true) {
-        final TermRef termRef = terms.next();
+        final BytesRef termRef = terms.next();
         if (termRef == null) {
           break;
         } else {
@@ -206,7 +206,7 @@
         final TermPositions termPos = r.termPositions();
         final TermDocs termDocs = r.termDocs();
         while(true) {
-          final TermRef termRef = terms.next();
+          final BytesRef termRef = terms.next();
           //System.out.println("TEST:   enum term=" + termRef);
           if (termRef == null) {
             break;
@@ -362,7 +362,7 @@
       String text = getRandomText(rand, 1, 3, false);
       final TermsEnum termsEnum = r.fields().terms(f).iterator();
 
-      final TermsEnum.SeekStatus seekStatus = termsEnum.seek(new TermRef(text));
+      final TermsEnum.SeekStatus seekStatus = termsEnum.seek(new BytesRef(text));
       Term t = new Term(f, text);
       //System.out.println("seek to " + t);
 

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java Sun Jan 17 17:44:08 2010
@@ -47,6 +47,7 @@
 import org.apache.lucene.util.ReaderUtil;
 import org.apache.lucene.util.LuceneTestCase;
 import org.apache.lucene.util._TestUtil;
+import org.apache.lucene.util.BytesRef;
 
 /*
   Verify we can read the pre-2.1 file format, do searches
@@ -111,13 +112,13 @@
     zipFile.close();
   }
 
-  public void xxxtestCreateCFS() throws IOException {
+  public void testCreateCFS() throws IOException {
     String dirName = "testindex.cfs";
     createIndex(dirName, true);
     rmDir(dirName);
   }
 
-  public void xxxtestCreateNoCFS() throws IOException {
+  public void testCreateNoCFS() throws IOException {
     String dirName = "testindex.nocfs";
     createIndex(dirName, true);
     rmDir(dirName);
@@ -242,7 +243,7 @@
     assertEquals("test for compressed field should have run 4 times", 4, hasTested29);
   }
 
-  public void xxxtestSearchOldIndex() throws IOException {
+  public void testSearchOldIndex() throws IOException {
     for(int i=0;i<oldNames.length;i++) {
       String dirName = "src/test/org/apache/lucene/index/index." + oldNames[i];
       unzip(dirName, oldNames[i]);
@@ -251,7 +252,7 @@
     }
   }
 
-  public void xxxtestIndexOldIndexNoAdds() throws IOException {
+  public void testIndexOldIndexNoAdds() throws IOException {
     for(int i=0;i<oldNames.length;i++) {
       String dirName = "src/test/org/apache/lucene/index/index." + oldNames[i];
       unzip(dirName, oldNames[i]);
@@ -260,7 +261,7 @@
     }
   }
 
-  public void xxxtestIndexOldIndex() throws IOException {
+  public void testIndexOldIndex() throws IOException {
     for(int i=0;i<oldNames.length;i++) {
       String dirName = "src/test/org/apache/lucene/index/index." + oldNames[i];
       unzip(dirName, oldNames[i]);
@@ -510,7 +511,7 @@
 
   /* Verifies that the expected file names were produced */
 
-  public void xxxtestExactFileNames() throws IOException {
+  public void testExactFileNames() throws IOException {
 
     String outputDir = "lucene.backwardscompat0.index";
     rmDir(outputDir);
@@ -662,7 +663,7 @@
   }
 
   // flex: test basics of TermsEnum api on non-flex index
-  public void xxxtestNextIntoWrongField() throws Exception {
+  public void testNextIntoWrongField() throws Exception {
     for(int i=0;i<oldNames.length;i++) {
       String dirName = "src/test/org/apache/lucene/index/index." + oldNames[i];
       unzip(dirName, oldNames[i]);
@@ -670,14 +671,14 @@
       Directory dir = FSDirectory.open(new File(fullPath));
       IndexReader r = IndexReader.open(dir);
       TermsEnum terms = r.fields().terms("content").iterator();
-      TermRef t = terms.next();
+      BytesRef t = terms.next();
       assertNotNull(t);
 
       // content field only has term aaa:
       assertEquals("aaa", t.toString());
       assertNull(terms.next());
 
-      TermRef aaaTerm = new TermRef("aaa");
+      BytesRef aaaTerm = new BytesRef("aaa");
 
       // should be found exactly
       assertEquals(TermsEnum.SeekStatus.FOUND,
@@ -687,13 +688,13 @@
 
       // should hit end of field
       assertEquals(TermsEnum.SeekStatus.END,
-                   terms.seek(new TermRef("bbb")));
+                   terms.seek(new BytesRef("bbb")));
       assertNull(terms.next());
 
       // should seek to aaa
       assertEquals(TermsEnum.SeekStatus.NOT_FOUND,
-                   terms.seek(new TermRef("a")));
-      assertTrue(terms.term().termEquals(aaaTerm));
+                   terms.seek(new BytesRef("a")));
+      assertTrue(terms.term().bytesEquals(aaaTerm));
       assertEquals(35, countDocs(terms.docs(null)));
       assertNull(terms.next());
 

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestCodecs.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestCodecs.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestCodecs.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestCodecs.java Sun Jan 17 17:44:08 2010
@@ -140,13 +140,13 @@
 
   class TermData implements Comparable {
     String text2;
-    final TermRef text;
+    final BytesRef text;
     int[] docs;
     PositionData[][] positions;
     FieldData field;
     
     public TermData(String text, int[] docs, PositionData[][] positions) {
-      this.text = new TermRef(text);
+      this.text = new BytesRef(text);
       this.text2 = text;
       this.docs = docs;
       this.positions = positions;
@@ -272,14 +272,14 @@
     assertNotNull(fieldsEnum.next());
     TermsEnum termsEnum = fieldsEnum.terms();
     for(int i=0;i<NUM_TERMS;i++) {
-      TermRef term = termsEnum.next();
+      BytesRef term = termsEnum.next();
       assertNotNull(term);
       assertEquals(terms[i].text2, term.toString());
     }
     assertNull(termsEnum.next());
 
     for(int i=0;i<NUM_TERMS;i++) {
-      assertEquals(termsEnum.seek(new TermRef(terms[i].text2)), TermsEnum.SeekStatus.FOUND);
+      assertEquals(termsEnum.seek(new BytesRef(terms[i].text2)), TermsEnum.SeekStatus.FOUND);
     }
 
     assertNull(fieldsEnum.next());
@@ -416,14 +416,14 @@
 
         int upto = 0;
         while(true) {
-          TermRef term = termsEnum.next();
+          BytesRef term = termsEnum.next();
           if (term == null) {
             break;
           }
           if (Codec.DEBUG) {
             System.out.println("check " + upto + ": " + field.terms[upto].text2);
           }
-          assertTrue(new TermRef(field.terms[upto++].text2).termEquals(term));
+          assertTrue(new BytesRef(field.terms[upto++].text2).bytesEquals(term));
         }
         assertEquals(upto, field.terms.length);
 
@@ -432,7 +432,7 @@
           System.out.println("\nTEST: random seek");
         }
         TermData term = field.terms[nextInt(field.terms.length)];
-        TermsEnum.SeekStatus status = termsEnum.seek(new TermRef(term.text2));
+        TermsEnum.SeekStatus status = termsEnum.seek(new BytesRef(term.text2));
         assertEquals(status, TermsEnum.SeekStatus.FOUND);
         assertEquals(term.docs.length, termsEnum.docFreq());
         verifyDocs(term.docs, term.positions, termsEnum.docs(null), !field.omitTF);
@@ -442,7 +442,7 @@
         term = field.terms[idx];
         status = termsEnum.seek(idx);
         assertEquals(status, TermsEnum.SeekStatus.FOUND);
-        assertTrue(termsEnum.term().termEquals(new TermRef(term.text2)));
+        assertTrue(termsEnum.term().bytesEquals(new BytesRef(term.text2)));
         assertEquals(term.docs.length, termsEnum.docFreq());
         verifyDocs(term.docs, term.positions, termsEnum.docs(null), !field.omitTF);
 
@@ -452,7 +452,7 @@
         for(int i=0;i<100;i++) {
           char[] text = getRandomText();
           String text2 = new String(text, 0, text.length-1) + ".";
-          status = termsEnum.seek(new TermRef(text2));
+          status = termsEnum.seek(new BytesRef(text2));
           assertTrue(status == TermsEnum.SeekStatus.NOT_FOUND ||
                      status == TermsEnum.SeekStatus.END);
         }
@@ -465,7 +465,7 @@
           if (Codec.DEBUG) {
             System.out.println(Thread.currentThread().getName() + ": TEST: term=" + field.terms[i].text2 + " has docFreq=" + field.terms[i].docs.length);
           }
-          assertEquals(Thread.currentThread().getName() + ": field=" + field.fieldInfo.name + " term=" + field.terms[i].text2, TermsEnum.SeekStatus.FOUND, termsEnum.seek(new TermRef(field.terms[i].text2)));
+          assertEquals(Thread.currentThread().getName() + ": field=" + field.fieldInfo.name + " term=" + field.terms[i].text2, TermsEnum.SeekStatus.FOUND, termsEnum.seek(new BytesRef(field.terms[i].text2)));
           assertEquals(field.terms[i].docs.length, termsEnum.docFreq());
         }
 
@@ -479,22 +479,22 @@
           }
           assertEquals(Thread.currentThread().getName() + ": field=" + field.fieldInfo.name + " term=" + field.terms[i].text2, TermsEnum.SeekStatus.FOUND, termsEnum.seek(i));
           assertEquals(field.terms[i].docs.length, termsEnum.docFreq());
-          assertTrue(termsEnum.term().termEquals(new TermRef(field.terms[i].text2)));
+          assertTrue(termsEnum.term().bytesEquals(new BytesRef(field.terms[i].text2)));
         }
 
         // Seek to non-existent empty-string term
-        status = termsEnum.seek(new TermRef(""));
+        status = termsEnum.seek(new BytesRef(""));
         assertNotNull(status);
         assertEquals(status, TermsEnum.SeekStatus.NOT_FOUND);
 
         // Make sure we're now pointing to first term
-        assertTrue(termsEnum.term().termEquals(new TermRef(field.terms[0].text2)));
+        assertTrue(termsEnum.term().bytesEquals(new BytesRef(field.terms[0].text2)));
 
         // Test docs enum
         if (Codec.DEBUG) {
           System.out.println("\nTEST: docs/positions");
         }
-        termsEnum.seek(new TermRef(""));
+        termsEnum.seek(new BytesRef(""));
         upto = 0;
         do {
           term = field.terms[upto];

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestFlexExternalReader.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestFlexExternalReader.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestFlexExternalReader.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestFlexExternalReader.java Sun Jan 17 17:44:08 2010
@@ -46,8 +46,8 @@
 
     IndexReader r = new FlexTestUtil.ForcedExternalReader(w.getReader());
 
-    TermRef field1Term = new TermRef("field1");
-    TermRef field2Term = new TermRef("field2");
+    BytesRef field1Term = new BytesRef("field1");
+    BytesRef field2Term = new BytesRef("field2");
 
     assertEquals(DOC_COUNT, r.maxDoc());
     assertEquals(DOC_COUNT, r.numDocs());
@@ -60,19 +60,19 @@
     assertEquals(TermsEnum.SeekStatus.FOUND, termsEnum.seek(field1Term));
 
     assertEquals(TermsEnum.SeekStatus.NOT_FOUND, termsEnum.seek(field2Term));
-    assertTrue(new TermRef("is").termEquals(termsEnum.term()));
+    assertTrue(new BytesRef("is").bytesEquals(termsEnum.term()));
 
     terms = fields.terms("field2");
     termsEnum = terms.iterator();
     assertEquals(TermsEnum.SeekStatus.NOT_FOUND, termsEnum.seek(field1Term));
-    assertTrue(termsEnum.term().termEquals(field2Term));
+    assertTrue(termsEnum.term().bytesEquals(field2Term));
 
     assertEquals(TermsEnum.SeekStatus.FOUND, termsEnum.seek(field2Term));
 
     termsEnum = fields.terms("field3").iterator();
-    assertEquals(TermsEnum.SeekStatus.END, termsEnum.seek(new TermRef("bbb")));
+    assertEquals(TermsEnum.SeekStatus.END, termsEnum.seek(new BytesRef("bbb")));
 
-    assertEquals(TermsEnum.SeekStatus.FOUND, termsEnum.seek(new TermRef("aaa")));
+    assertEquals(TermsEnum.SeekStatus.FOUND, termsEnum.seek(new BytesRef("aaa")));
     assertNull(termsEnum.next());
 
     r.close();

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/index/TestIndexWriter.java Sun Jan 17 17:44:08 2010
@@ -72,6 +72,7 @@
 import org.apache.lucene.util._TestUtil;
 import org.apache.lucene.util.Version;
 import org.apache.lucene.util.ThreadInterruptedException;
+import org.apache.lucene.util.BytesRef;
 
 public class TestIndexWriter extends LuceneTestCase {
     public TestIndexWriter(String name) {
@@ -4691,7 +4692,7 @@
 
     UnicodeUtil.UTF16Result utf16 = new UnicodeUtil.UTF16Result();
     while(true) {
-      final TermRef term = terms.next();
+      final BytesRef term = terms.next();
       if (term == null) {
         break;
       }
@@ -4725,7 +4726,7 @@
     // Test seeking:
     Iterator<String> it = seenTerms.iterator();
     while(it.hasNext()) {
-      TermRef tr = new TermRef(it.next());
+      BytesRef tr = new BytesRef(it.next());
       assertEquals("seek failed for term=" + termDesc(tr.toString()), 
                    TermsEnum.SeekStatus.FOUND,
                    terms.seek(tr));

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/JustCompileSearch.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/JustCompileSearch.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/JustCompileSearch.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/JustCompileSearch.java Sun Jan 17 17:44:08 2010
@@ -25,7 +25,7 @@
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.DocsEnum;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.util.PriorityQueue;
 
 /**
@@ -203,7 +203,7 @@
   
   static final class JustCompileExtendedFieldCacheLongParser implements FieldCache.LongParser {
 
-    public long parseLong(TermRef string) {
+    public long parseLong(BytesRef string) {
       throw new UnsupportedOperationException(UNSUPPORTED_MSG);
     }
     
@@ -211,7 +211,7 @@
   
   static final class JustCompileExtendedFieldCacheDoubleParser implements FieldCache.DoubleParser {
     
-    public double parseDouble(TermRef term) {
+    public double parseDouble(BytesRef term) {
       throw new UnsupportedOperationException(UNSUPPORTED_MSG);
     }
     

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java Sun Jan 17 17:44:08 2010
@@ -24,9 +24,8 @@
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.NumericField;
 import org.apache.lucene.index.IndexWriter;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.index.IndexWriter.MaxFieldLength;
-import org.apache.lucene.index.Term;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.util.LuceneTestCase;
@@ -446,7 +445,7 @@
     TermsEnum termEnum = q.getTermsEnum(searcher.getIndexReader());
     int count = 0;
     while (termEnum.next() != null) {
-      final TermRef t = termEnum.term();
+      final BytesRef t = termEnum.term();
       if (t != null) {
         final int val = NumericUtils.prefixCodedToInt(t.toString());
         assertTrue("value not in bounds " + val + " >= " + lower + " && "

Modified: lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestSort.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestSort.java?rev=900166&r1=900165&r2=900166&view=diff
==============================================================================
--- lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestSort.java (original)
+++ lucene/java/branches/flex_1458/src/test/org/apache/lucene/search/TestSort.java Sun Jan 17 17:44:08 2010
@@ -35,7 +35,7 @@
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
-import org.apache.lucene.index.TermRef;
+import org.apache.lucene.util.BytesRef;
 import org.apache.lucene.queryParser.ParseException;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.store.LockObtainFailedException;
@@ -334,7 +334,7 @@
 
 
     sort.setSort (new SortField[] { new SortField ("parser", new FieldCache.IntParser(){
-      public final int parseInt(final TermRef term) {
+      public final int parseInt(final BytesRef term) {
         return (term.bytes[term.offset]-'A') * 123456;
       }
     }), SortField.FIELD_DOC });
@@ -343,7 +343,7 @@
     fc.purgeAllCaches();
 
     sort.setSort (new SortField[] { new SortField ("parser", new FieldCache.FloatParser(){
-      public final float parseFloat(final TermRef term) {
+      public final float parseFloat(final BytesRef term) {
         return (float) Math.sqrt( term.bytes[term.offset] );
       }
     }), SortField.FIELD_DOC });
@@ -352,7 +352,7 @@
     fc.purgeAllCaches();
 
     sort.setSort (new SortField[] { new SortField ("parser", new FieldCache.LongParser(){
-      public final long parseLong(final TermRef term) {
+      public final long parseLong(final BytesRef term) {
         return (term.bytes[term.offset]-'A') * 1234567890L;
       }
     }), SortField.FIELD_DOC });
@@ -361,7 +361,7 @@
     fc.purgeAllCaches();
 
     sort.setSort (new SortField[] { new SortField ("parser", new FieldCache.DoubleParser(){
-      public final double parseDouble(final TermRef term) {
+      public final double parseDouble(final BytesRef term) {
         return Math.pow( term.bytes[term.offset], (term.bytes[term.offset]-'A') );
       }
     }), SortField.FIELD_DOC });
@@ -370,7 +370,7 @@
     fc.purgeAllCaches();
 
     sort.setSort (new SortField[] { new SortField ("parser", new FieldCache.ByteParser(){
-      public final byte parseByte(final TermRef term) {
+      public final byte parseByte(final BytesRef term) {
         return (byte) (term.bytes[term.offset]-'A');
       }
     }), SortField.FIELD_DOC });
@@ -379,7 +379,7 @@
     fc.purgeAllCaches();
 
     sort.setSort (new SortField[] { new SortField ("parser", new FieldCache.ShortParser(){
-      public final short parseShort(final TermRef term) {
+      public final short parseShort(final BytesRef term) {
         return (short) (term.bytes[term.offset]-'A');
       }
     }), SortField.FIELD_DOC });
@@ -440,7 +440,7 @@
     @Override
     public void setNextReader(IndexReader reader, int docBase) throws IOException {
       docValues = FieldCache.DEFAULT.getInts(reader, "parser", new FieldCache.IntParser() {
-          public final int parseInt(final TermRef term) {
+          public final int parseInt(final BytesRef term) {
             return (term.bytes[term.offset]-'A') * 123456;
           }
         });