EventsSummaryQuery.java

package gov.usgs.earthquake.indexer;

import java.util.Iterator;
import java.util.List;

/**
 * Search for multiple Events.
 */
public class EventsSummaryQuery extends SearchQuery {

	private List<EventSummary> result;

	/**
	 * Construct an EventsSummaryQuery.
	 *
	 * @param query ProductIndexQuery
	 */
	public EventsSummaryQuery(final ProductIndexQuery query) {
		super(SearchMethod.EVENTS_SUMMARY, query);
	}

	@Override
	public List<EventSummary> getResult() {
		return result;
	}

	/** @param events list of EventSummarys to set as result */
	public void setResult(List<EventSummary> events) {
		this.result = events;
	}

	@Override
	public int compareTo(SearchQuery that) {
		int r;

		if ((r = super.compareTo(that)) != 0) {
			return r;
		}

		if (this.result != null) {
			List<EventSummary> thatResult = ((EventsSummaryQuery) that).result;
			if ((r = (thatResult.size() - this.result.size())) != 0) {
				return r;
			}

			Iterator<EventSummary> thisIter = this.result.iterator();
			Iterator<EventSummary> thatIter = thatResult.iterator();
			while (thisIter.hasNext() && thatIter.hasNext()) {
				// just compare product ids for now
				r = thisIter.next().compareTo(thatIter.next());
				if (r != 0) {
					return r;
				}
			}
		}

		return 0;
	}

}