package com.silverforge.elasticsearchrawclient.queryDSL.queries.innerQueries.common; import com.silverforge.elasticsearchrawclient.queryDSL.Constants; import com.silverforge.elasticsearchrawclient.model.QueryTypeItem; import com.silverforge.elasticsearchrawclient.definition.Queryable; import com.silverforge.elasticsearchrawclient.utils.QueryTypeArrayList; public abstract class MinimumShouldMatchQuery implements Queryable { @Override public String getQueryString() { return null; } public static abstract class MinimumShouldMatchInit<T extends MinimumShouldMatchInit<T>> { protected final QueryTypeArrayList<QueryTypeItem> queryBag = new QueryTypeArrayList<>(); protected abstract T self(); public T minimumShouldMatch(int value) { queryBag.addItem(Constants.MINIMUM_SHOULD_MATCH, value); return self(); } public T minimumShouldMatchPercentage(int value) { queryBag.addPercentageItem(Constants.MINIMUM_SHOULD_MATCH, value); return self(); } public T minimumShouldMatchPercentage(float value) { queryBag.addPercentageItem(Constants.MINIMUM_SHOULD_MATCH, value); return self(); } public T minimumShouldMatchCombination(String expression) { queryBag.addItem(Constants.MINIMUM_SHOULD_MATCH, expression); return self(); } } }