All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.molgenis.data.elasticsearch.util.SearchResult Maven / Gradle / Ivy

The newest version!
package org.molgenis.data.elasticsearch.util;

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

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.molgenis.data.AggregateResult;

/**
 * Result of a search. Check the errorMessage, if not null an error was returned by the SearchService
 * 
 * @author erwin
 * 
 */
public class SearchResult implements Iterable
{
	private long totalHitCount = 0;
	private List searchHits = Collections.emptyList();
	private String errorMessage = null;
	private AggregateResult aggregate;

	public SearchResult(String errorMessage)
	{
		this.errorMessage = errorMessage;
	}

	public SearchResult(long totalHitCount, List searchHits)
	{
		if (searchHits == null) throw new IllegalArgumentException("SearchHits is null");

		this.totalHitCount = totalHitCount;
		this.searchHits = searchHits;
	}

	public SearchResult(long totalHitCount, List searchHits, AggregateResult aggregate)
	{
		this(totalHitCount, searchHits);
		this.aggregate = aggregate;
	}

	public long getTotalHitCount()
	{
		return totalHitCount;
	}

	public List getSearchHits()
	{
		return Collections.unmodifiableList(searchHits);
	}

	public String getErrorMessage()
	{
		return errorMessage;
	}

	public AggregateResult getAggregate()
	{
		return aggregate;
	}

	@Override
	public Iterator iterator()
	{
		return searchHits.iterator();
	}

	@Override
	public String toString()
	{
		return ToStringBuilder.reflectionToString(this);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy