re-indent, no functional change

git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@224373 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Daniel Naber 2005-07-22 17:41:46 +00:00
parent 7dd3e02a1a
commit 65cbe799af
1 changed files with 136 additions and 175 deletions

View File

@ -24,210 +24,171 @@ import java.util.List;
import org.apache.lucene.util.PriorityQueue;
/**
* Describe class <code>MultipleTermPositions</code> here.
*
*
* @author Anders Nielsen
* @version 1.0
*/
public class MultipleTermPositions
implements TermPositions
{
private static final class TermPositionsQueue
extends PriorityQueue
{
TermPositionsQueue(List termPositions)
throws IOException
{
initialize(termPositions.size());
public class MultipleTermPositions implements TermPositions {
Iterator i = termPositions.iterator();
while (i.hasNext())
{
TermPositions tp = (TermPositions)i.next();
if (tp.next())
put(tp);
}
}
private static final class TermPositionsQueue extends PriorityQueue {
TermPositionsQueue(List termPositions) throws IOException {
initialize(termPositions.size());
final TermPositions peek()
{
return (TermPositions)top();
}
public final boolean lessThan(Object a, Object b)
{
return ((TermPositions)a).doc() < ((TermPositions)b).doc();
}
Iterator i = termPositions.iterator();
while (i.hasNext()) {
TermPositions tp = (TermPositions) i.next();
if (tp.next())
put(tp);
}
}
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()
{
int[] newArray = new int[_arraySize*2];
System.arraycopy(_array, 0, newArray, 0, _arraySize);
_array = newArray;
_arraySize *= 2;
}
final TermPositions peek() {
return (TermPositions) top();
}
private int _doc;
private int _freq;
public final boolean lessThan(Object a, Object b) {
return ((TermPositions) a).doc() < ((TermPositions) b).doc();
}
}
private TermPositionsQueue _termPositionsQueue;
private IntQueue _posList;
private static final class IntQueue {
private int _arraySize = 16;
private int _index = 0;
private int _lastIndex = 0;
private int[] _array = new int[_arraySize];
/**
* Creates a new <code>MultipleTermPositions</code> instance.
*
* @param indexReader an <code>IndexReader</code> value
* @param terms a <code>Term[]</code> value
* @exception IOException if an error occurs
*/
public MultipleTermPositions(IndexReader indexReader, Term[] terms)
throws IOException
{
List termPositions = new LinkedList();
final void add(int i) {
if (_lastIndex == _arraySize)
growArray();
for (int i=0; i<terms.length; i++)
termPositions.add(indexReader.termPositions(terms[i]));
_termPositionsQueue = new TermPositionsQueue(termPositions);
_posList = new IntQueue();
_array[_lastIndex++] = i;
}
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++)
_posList.add(tp.nextPosition());
if (tp.next())
_termPositionsQueue.adjustTop();
else
{
_termPositionsQueue.pop();
tp.close();
}
}
while (_termPositionsQueue.size() > 0 && _termPositionsQueue.peek().doc() == _doc);
_posList.sort();
_freq = _posList.size();
return true;
final int next() {
return _array[_index++];
}
public final int nextPosition()
{
return _posList.next();
final void sort() {
Arrays.sort(_array, _index, _lastIndex);
}
public final boolean skipTo(int target)
throws IOException
{
while (_termPositionsQueue.peek() != null && target > _termPositionsQueue.peek().doc())
{
TermPositions tp = (TermPositions)_termPositionsQueue.pop();
if (tp.skipTo(target))
_termPositionsQueue.put(tp);
else
tp.close();
}
return next();
final void clear() {
_index = 0;
_lastIndex = 0;
}
public final int doc()
{
return _doc;
final int size() {
return (_lastIndex - _index);
}
public final int freq()
{
return _freq;
private void growArray() {
int[] newArray = new int[_arraySize * 2];
System.arraycopy(_array, 0, newArray, 0, _arraySize);
_array = newArray;
_arraySize *= 2;
}
}
public final void close()
throws IOException
{
while (_termPositionsQueue.size() > 0)
((TermPositions)_termPositionsQueue.pop()).close();
}
private int _doc;
private int _freq;
private TermPositionsQueue _termPositionsQueue;
private IntQueue _posList;
/** Not implemented.
* @throws UnsupportedOperationException
*/
public void seek(Term arg0)
throws IOException
{
throw new UnsupportedOperationException();
}
/**
* Creates a new <code>MultipleTermPositions</code> instance.
*
* @exception IOException
*/
public MultipleTermPositions(IndexReader indexReader, Term[] terms) throws IOException {
List termPositions = new LinkedList();
/** Not implemented.
* @throws UnsupportedOperationException
*/
public void seek(TermEnum termEnum) throws IOException {
throw new UnsupportedOperationException();
}
for (int i = 0; i < terms.length; i++)
termPositions.add(indexReader.termPositions(terms[i]));
/** Not implemented.
* @throws UnsupportedOperationException
*/
public int read(int[] arg0, int[] arg1)
throws IOException
{
throw new UnsupportedOperationException();
_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++)
_posList.add(tp.nextPosition());
if (tp.next())
_termPositionsQueue.adjustTop();
else {
_termPositionsQueue.pop();
tp.close();
}
} while (_termPositionsQueue.size() > 0 && _termPositionsQueue.peek().doc() == _doc);
_posList.sort();
_freq = _posList.size();
return true;
}
public final int nextPosition() {
return _posList.next();
}
public final boolean skipTo(int target) throws IOException {
while (_termPositionsQueue.peek() != null && target > _termPositionsQueue.peek().doc()) {
TermPositions tp = (TermPositions) _termPositionsQueue.pop();
if (tp.skipTo(target))
_termPositionsQueue.put(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)
((TermPositions) _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();
}
}