package io.sphere.sdk.facets; import io.sphere.sdk.search.PagedSearchResult; import io.sphere.sdk.search.TermFacetResult; import io.sphere.sdk.search.UntypedSearchModel; import javax.annotation.Nullable; import java.util.List; public final class SelectFacetImpl<T> extends BaseSelectFacet<T> { SelectFacetImpl(final String key, final String label, final boolean countHidden, final FacetType type, final UntypedSearchModel<T> searchModel, final boolean multiSelect, final boolean matchingAll, final List<String> selectedValues, @Nullable final TermFacetResult termFacetResult, @Nullable final Long threshold, @Nullable final Long limit) { super(key, label, countHidden, type, searchModel, multiSelect, matchingAll, selectedValues, termFacetResult, threshold, limit); } @Override public List<FacetOption> getLimitedOptions() { return super.getLimitedOptions(); } @Override public boolean isAvailable() { return super.isAvailable(); } @Override public boolean isMultiSelect() { return super.isMultiSelect(); } @Override public boolean isMatchingAll() { return super.isMatchingAll(); } @Override public SelectFacet<T> withSelectedValues(final List<String> selectedValues) { return SelectFacetBuilder.of(this).selectedValues(selectedValues).build(); } @Override public SelectFacet<T> withSearchResult(final PagedSearchResult<T> searchResult) { final TermFacetResult termFacetResult = searchResult.getTermFacetResult(searchModel.faceted().byAllTerms()); return SelectFacetBuilder.of(this).facetResult(termFacetResult).build(); } }