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

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

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

import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.molgenis.data.AttributeMetaData;
import org.molgenis.data.Query;
import org.molgenis.data.support.QueryImpl;

public class SearchRequest
{
	private String documentType;
	private QueryImpl query;
	private AttributeMetaData aggregateField1;
	private AttributeMetaData aggregateField2;
	private AttributeMetaData aggregateFieldDistinct;

	public SearchRequest()
	{
	}

	public SearchRequest(String documentType, Query query)
	{
		this.documentType = documentType;
		this.query = new QueryImpl(query);
	}

	public SearchRequest(String documentType, Query query, List fieldsToReturn,
			AttributeMetaData aggregateField1, AttributeMetaData aggregateField2,
			AttributeMetaData aggregateFieldDistinct)
	{
		this(documentType, query);
		this.aggregateField1 = aggregateField1;
		this.aggregateField2 = aggregateField2;
		this.aggregateFieldDistinct = aggregateFieldDistinct;
	}

	public String getDocumentType()
	{
		return documentType;
	}

	public Query getQuery()
	{
		if (query == null)
		{
			query = new QueryImpl();
		}

		return query;
	}

	public AttributeMetaData getAggregateField1()
	{
		return aggregateField1;
	}

	public AttributeMetaData getAggregateField2()
	{
		return aggregateField2;
	}

	public AttributeMetaData getAggregateFieldDistinct()
	{
		return aggregateFieldDistinct;
	}

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

	@Override
	public int hashCode()
	{
		final int prime = 31;
		int result = 1;
		result = prime * result + ((documentType == null) ? 0 : documentType.hashCode());
		result = prime * result + ((aggregateField1 == null) ? 0 : aggregateField1.hashCode());
		result = prime * result + ((aggregateField2 == null) ? 0 : aggregateField2.hashCode());
		result = prime * result + ((aggregateFieldDistinct == null) ? 0 : aggregateField2.hashCode());
		result = prime * result + ((query == null) ? 0 : query.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj)
	{
		if (this == obj) return true;
		if (obj == null) return false;
		if (getClass() != obj.getClass()) return false;
		SearchRequest other = (SearchRequest) obj;
		if (documentType == null)
		{
			if (other.documentType != null) return false;
		}
		else if (!documentType.equals(other.documentType)) return false;
		if (aggregateField1 == null)
		{
			if (other.aggregateField1 != null) return false;
		}
		else if (!aggregateField1.equals(other.aggregateField1)) return false;
		if (aggregateField2 == null)
		{
			if (other.aggregateField2 != null) return false;
		}
		else if (!aggregateField2.equals(other.aggregateField2)) return false;
		if (aggregateFieldDistinct == null)
		{
			if (other.aggregateFieldDistinct != null) return false;
		}
		else if (!aggregateFieldDistinct.equals(other.aggregateFieldDistinct)) return false;
		if (query == null)
		{
			if (other.query != null) return false;
		}
		else if (!query.equals(other.query)) return false;
		return true;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy