class PriceSearchQueryBuilder extends AbstractSearchQueryBuilderImpl implements ProductSearchQueryBuilder<Query> {

    @Override
    public List<Query> createQueryChain(final NavigationContext<Query> navigationContext, final String parameter, final Object value) {

        String strValue = null;
        if (value instanceof Collection) {
            if (CollectionUtils.isNotEmpty((Collection) value)) {
                strValue = String.valueOf(((Collection) value).iterator().next());
            }
        } else if (value != null) {
            strValue = String.valueOf(value);
        }


        if (strValue == null || StringUtils.isBlank(strValue)) {
            return null;
        }

        final Pair<String, Pair<BigDecimal, BigDecimal>> priceParams =
                priceNavigation.decomposePriceRequestParams(strValue);

        final String facet = SearchUtil.priceFacetName(navigationContext.getCustomerShopId(), priceParams.getFirst());
        final Long from = SearchUtil.priceToLong(priceParams.getSecond().getFirst());
        final Long to = SearchUtil.priceToLong(priceParams.getSecond().getSecond());

        // field name for from and to will be the same
        return Collections.singletonList(createRangeQuery(facet + "_range", from, to));
    }

    public  PriceSearchQueryBuilder(final PriceNavigation priceNavigation);

}