package pl.allegro.tech.search.elasticsearch.tools.reindex.connection;
import com.google.common.base.Strings;
import org.elasticsearch.search.sort.SortOrder;
public class ElasticSearchQueryBuilder {
private String query;
private String sortField;
private SortOrder sortOrder = SortOrder.ASC;
private ElasticSearchQueryBuilder() {
}
public ElasticSearchQueryBuilder setSortOrder(String sortOrder) {
if (!Strings.isNullOrEmpty(sortOrder)) {
try {
this.sortOrder = SortOrder.valueOf(sortOrder);
} catch (IllegalArgumentException e) {
throw new ParsingElasticsearchAddressException("SortOrder can be only ASC or DESC, not " + sortOrder);
}
}
return this;
}
public ElasticSearchQueryBuilder setQuery(String query) {
this.query = query;
return this;
}
public ElasticSearchQueryBuilder setSortByField(String orderByField) {
this.sortField = orderByField;
return this;
}
public ElasticSearchQuery build() {
return new ElasticSearchQuery(query, sortField, sortOrder);
}
public static ElasticSearchQueryBuilder builder() {
return new ElasticSearchQueryBuilder();
}
}