pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.4.0 / lucene / src / java / org / apache / lucene / index / MultipleTermPositions.java
diff --git a/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/index/MultipleTermPositions.java b/lucene-java-3.4.0/lucene/src/java/org/apache/lucene/index/MultipleTermPositions.java
deleted file mode 100644 (file)
index b82b090..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-package org.apache.lucene.index;
-
-/**
- * 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.IOException;
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.lucene.util.PriorityQueue;
-import org.apache.lucene.util.ArrayUtil;
-
-/**
- * Allows you to iterate over the {@link TermPositions} for multiple {@link Term}s as
- * a single {@link TermPositions}.
- *
- */
-public class MultipleTermPositions implements TermPositions {
-
-  private static final class TermPositionsQueue extends PriorityQueue<TermPositions> {
-    TermPositionsQueue(List<TermPositions> termPositions) throws IOException {
-      initialize(termPositions.size());
-
-      for (TermPositions tp : termPositions) {
-        if (tp.next())
-          add(tp);
-      }
-    }
-
-    final TermPositions peek() {
-      return top();
-    }
-
-    @Override
-    public final boolean lessThan(TermPositions a, TermPositions b) {
-      return a.doc() < b.doc();
-    }
-  }
-
-  private static final class IntQueue {
-    private int _arraySize = 16;
-    private int _index = 0;
-    private int _lastIndex = 0;
-    private int[] _array = new int[_arraySize];
-
-    final void add(int i) {
-      if (_lastIndex == _arraySize)
-        growArray();
-
-      _array[_lastIndex++] = i;
-    }
-
-    final int next() {
-      return _array[_index++];
-    }
-
-    final void sort() {
-      Arrays.sort(_array, _index, _lastIndex);
-    }
-
-    final void clear() {
-      _index = 0;
-      _lastIndex = 0;
-    }
-
-    final int size() {
-      return (_lastIndex - _index);
-    }
-
-    private void growArray() {
-      _array = ArrayUtil.grow(_array, _arraySize+1);
-      _arraySize = _array.length;
-    }
-  }
-
-  private int _doc;
-  private int _freq;
-  private TermPositionsQueue _termPositionsQueue;
-  private IntQueue _posList;
-
-  /**
-   * Creates a new <code>MultipleTermPositions</code> instance.
-   * 
-   * @exception IOException
-   */
-  public MultipleTermPositions(IndexReader indexReader, Term[] terms) throws IOException {
-    List<TermPositions> termPositions = new LinkedList<TermPositions>();
-
-    for (int i = 0; i < terms.length; i++)
-      termPositions.add(indexReader.termPositions(terms[i]));
-
-    _termPositionsQueue = new TermPositionsQueue(termPositions);
-    _posList = new IntQueue();
-  }
-
-  public final boolean next() throws IOException {
-    if (_termPositionsQueue.size() == 0)
-      return false;
-
-    _posList.clear();
-    _doc = _termPositionsQueue.peek().doc();
-
-    TermPositions tp;
-    do {
-      tp = _termPositionsQueue.peek();
-
-      for (int i = 0; i < tp.freq(); i++) {
-        // NOTE: this can result in dup positions being added!
-        _posList.add(tp.nextPosition());
-      }
-
-      if (tp.next())
-        _termPositionsQueue.updateTop();
-      else {
-        _termPositionsQueue.pop();
-        tp.close();
-      }
-    } while (_termPositionsQueue.size() > 0 && _termPositionsQueue.peek().doc() == _doc);
-
-    _posList.sort();
-    _freq = _posList.size();
-
-    return true;
-  }
-
-  public final int nextPosition() {
-    // NOTE: this may return the same position more than
-    // once (see TestMultiPhraseQuery.testZeroPosIncr)
-    return _posList.next();
-  }
-
-  public final boolean skipTo(int target) throws IOException {
-    while (_termPositionsQueue.peek() != null && target > _termPositionsQueue.peek().doc()) {
-      TermPositions tp =  _termPositionsQueue.pop();
-      if (tp.skipTo(target))
-        _termPositionsQueue.add(tp);
-      else
-        tp.close();
-    }
-    return next();
-  }
-
-  public final int doc() {
-    return _doc;
-  }
-
-  public final int freq() {
-    return _freq;
-  }
-
-  public final void close() throws IOException {
-    while (_termPositionsQueue.size() > 0)
-      _termPositionsQueue.pop().close();
-  }
-
-  /**
-   * Not implemented.
-   * @throws UnsupportedOperationException
-   */
-  public void seek(Term arg0) throws IOException {
-    throw new UnsupportedOperationException();
-  }
-
-  /**
-   * Not implemented.
-   * @throws UnsupportedOperationException
-   */
-  public void seek(TermEnum termEnum) throws IOException {
-    throw new UnsupportedOperationException();
-  }
-
-  /**
-   * Not implemented.
-   * @throws UnsupportedOperationException
-   */
-  public int read(int[] arg0, int[] arg1) throws IOException {
-    throw new UnsupportedOperationException();
-  }
-  
-  
-  /**
-   * Not implemented.
-   * @throws UnsupportedOperationException
-   */
-  public int getPayloadLength() {
-    throw new UnsupportedOperationException();
-  }
-   
-  /**
-   * Not implemented.
-   * @throws UnsupportedOperationException
-   */
-  public byte[] getPayload(byte[] data, int offset) throws IOException {
-    throw new UnsupportedOperationException();
-  }
-
-  /**
-   *
-   * @return false
-   */
-  // TODO: Remove warning after API has been finalized
-  public boolean isPayloadAvailable() {
-    return false;
-  }
-}