/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.core.search; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.util.PriorityQueue; final class SearchHitQueue extends PriorityQueue<ScoreDoc> { private boolean prePopulate; SearchHitQueue(int size, boolean prePopulate) { this.prePopulate = prePopulate; initialize(size); } @Override protected ScoreDoc getSentinelObject() { return !prePopulate ? null : new ScoreDoc(Integer.MAX_VALUE, Float.NEGATIVE_INFINITY); } @Override protected boolean lessThan(ScoreDoc hitA, ScoreDoc hitB) { if (hitA.score == hitB.score) { return hitA.doc > hitB.doc; } else { return hitA.score < hitB.score; } } }