
com.commercetools.sunrise.search.facetedsearch.terms.BaseTermFacetedSearchFormSettings Maven / Gradle / Ivy
The newest version!
package com.commercetools.sunrise.search.facetedsearch.terms;
import com.commercetools.sunrise.framework.viewmodels.forms.FormSettings;
import com.commercetools.sunrise.search.facetedsearch.FacetedSearchFormSettings;
import io.sphere.sdk.search.*;
import io.sphere.sdk.search.model.TermFacetSearchModel;
import io.sphere.sdk.search.model.TypeSerializer;
import play.mvc.Http;
import java.util.List;
import java.util.Optional;
public interface BaseTermFacetedSearchFormSettings extends ConfiguredTermFacetedSearchFormSettings, FacetedSearchFormSettings, FormSettings {
ConfiguredTermFacetedSearchFormSettings configuration();
@Override
default TermFacetedSearchExpression buildFacetedSearchExpression(final Http.Context httpContext) {
final TermFacetExpression facetExpression = buildFacetExpression();
final List> filterExpressions = buildFilterExpressions(httpContext);
return TermFacetedSearchExpression.of(facetExpression, filterExpressions);
}
@Override
default TermFacetExpression buildFacetExpression() {
final TermFacetSearchModel searchModel = TermFacetSearchModel.of(getAttributePath(), TypeSerializer.ofString());
return searchModel
.withCountingProducts(isCountDisplayed())
.allTerms();
}
default Optional findFacetResult(final PagedSearchResult pagedSearchResult) {
final TermFacetExpression facetExpression = buildFacetExpression();
return Optional.ofNullable(pagedSearchResult.getFacetResult(facetExpression));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy