
com.commercetools.sunrise.search.facetedsearch.terms.TermFacetedSearchFormSettings Maven / Gradle / Ivy
The newest version!
package com.commercetools.sunrise.search.facetedsearch.terms;
import io.sphere.sdk.search.FilterExpression;
import io.sphere.sdk.search.TermFacetedSearchExpression;
import io.sphere.sdk.search.model.FacetedSearchSearchModel;
import io.sphere.sdk.search.model.TermFacetedSearchSearchModel;
import play.mvc.Http;
import javax.annotation.Nullable;
import java.util.List;
import java.util.Optional;
public interface TermFacetedSearchFormSettings extends ConfiguredTermFacetedSearchFormSettings, BaseTermFacetedSearchFormSettings {
ConfiguredTermFacetedSearchFormSettings configuration();
@Override
default Optional mapFieldValueToValue(final String fieldValue) {
return Optional.of(fieldValue);
}
@Override
default boolean isValidValue(@Nullable final String value) {
return value != null && !value.trim().isEmpty();
}
@Override
default List> buildFilterExpressions(final Http.Context httpContext) {
final List selectedValues = getAllSelectedValues(httpContext);
final FacetedSearchSearchModel searchModel = TermFacetedSearchSearchModel.of(getAttributePath());
final TermFacetedSearchExpression facetedSearchExpr;
if (selectedValues.isEmpty()) {
facetedSearchExpr = searchModel.allTerms();
} else if (isMatchingAll()) {
facetedSearchExpr = searchModel.containsAll(selectedValues);
} else {
facetedSearchExpr = searchModel.containsAny(selectedValues);
}
return facetedSearchExpr.filterExpressions();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy