All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.sphere.client.facets.FacetExpr Maven / Gradle / Ivy

There is a newer version: 0.72.1
Show newest version
package io.sphere.client.facets;

import com.google.common.collect.Range;
import io.sphere.client.facets.expressions.FacetExpressions.*;
import io.sphere.internal.util.SearchUtil.Names;
import org.joda.time.DateTime;

import java.math.BigDecimal;

import static io.sphere.internal.util.ListUtil.list;

/** Convenience DSL for creating facet expressions.
 *
 * 

* Example: *

{@code
 *FacetExpr.stringAttribute("color").termsMultiSelect("blue", "green")
 *}
* */ public final class FacetExpr { private FacetExpr() {} /** Requests facet counts for the categories attribute to be calculated. */ public static CategoriesDSL categories = new CategoriesDSL(); public static class CategoriesDSL { /** Counts occurrences of each distinct category found in the result set. */ public Terms terms() { return new Terms(Names.categories); } /** Counts occurrences of each distinct category and filters the result set by selected values. */ public Categories.TermsMultiSelect termsMultiSelect(String selectedCategoryId, String... selectedCategoryIds) { return termsMultiSelect(list(selectedCategoryId, selectedCategoryIds)); } /** Counts occurrences of each distinct category and filters the result set by selected values. */ public Categories.TermsMultiSelect termsMultiSelect(Iterable selectedCategoryIds) { return new Categories.TermsMultiSelect(selectedCategoryIds); } } /** Requests facet counts for a custom string attribute to be calculated. */ public static StringAttrDSL stringAttribute(String name) { return new StringAttrDSL(name); } public static class StringAttrDSL { private final String name; public StringAttrDSL(String name) { this.name = name; } /** Counts occurrences of each distinct value found in the result set. */ public Terms terms() { return new Terms(name); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public StringAttribute.TermsMultiSelect termsMultiSelect(String selectedValue, String... selectedValues) { return termsMultiSelect(list(selectedValue, selectedValues)); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public StringAttribute.TermsMultiSelect termsMultiSelect(Iterable selectedValues) { return new StringAttribute.TermsMultiSelect(name, selectedValues); } @Override public String toString() { return "StringAttrDSL{" + "name='" + name + '\'' + '}'; } } /** Requests facet counts for a custom number attribute to be calculated. */ public static NumberAttrDSL numberAttribute(String name) { return new NumberAttrDSL(name); } public static class NumberAttrDSL { private final String name; public NumberAttrDSL(String name) { this.name = name; } /** Counts occurrences of each distinct value found in the result set. */ public Terms terms() { return new Terms(name); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public NumberAttribute.TermsMultiSelect termsMultiSelect(Double selectedValue, Double... selectedValues) { return termsMultiSelect(list(selectedValue, selectedValues)); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public NumberAttribute.TermsMultiSelect termsMultiSelect(Iterable selectedValues) { return new NumberAttribute.TermsMultiSelect(name, selectedValues); } /** For each range, counts how many results fall into that range. */ public NumberAttribute.Ranges ranges(Range range, Range... ranges) { return ranges(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public NumberAttribute.Ranges ranges(Iterable> ranges) { return new NumberAttribute.Ranges(name, ranges); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Range range, Range... ranges) { return rangesMultiSelect(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Iterable> ranges) { return new RangesMultiSelectDSL(ranges); } public class RangesMultiSelectDSL { private final Iterable> ranges; public RangesMultiSelectDSL(Iterable> ranges) { this.ranges = ranges; } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public NumberAttribute.RangesMultiSelect selected(Range selectedRange, Range... selectedRanges) { return selected(list(selectedRange, selectedRanges)); } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public NumberAttribute.RangesMultiSelect selected(Iterable> selectedRanges) { return new NumberAttribute.RangesMultiSelect(name, selectedRanges, ranges); } } @Override public String toString() { return "NumberAttrDSL{" + "name='" + name + '\'' + '}'; } } /** Requests facet counts for a custom money attribute to be calculated. */ public static MoneyAttrDSL moneyAttribute(String name) { return new MoneyAttrDSL(name); } public static class MoneyAttrDSL { private final String name; public MoneyAttrDSL(String name) { this.name = name; } /** Counts occurrences of each distinct value found in the result set. */ public Terms terms() { return new Terms(name); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public MoneyAttribute.TermsMultiSelect termsMultiSelect(BigDecimal selectedValue, BigDecimal... selectedValues) { return termsMultiSelect(list(selectedValue, selectedValues)); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public MoneyAttribute.TermsMultiSelect termsMultiSelect(Iterable selectedValues) { return new MoneyAttribute.TermsMultiSelect(name, selectedValues); } /** For each range, counts how many results fall into that range. */ public MoneyAttribute.Ranges ranges(Range range, Range... ranges) { return ranges(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public MoneyAttribute.Ranges ranges(Iterable> ranges) { return new MoneyAttribute.Ranges(name, ranges); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Range range, Range... ranges) { return rangesMultiSelect(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Iterable> ranges) { return new RangesMultiSelectDSL(ranges); } @Override public String toString() { return "MoneyAttrDSL{" + "name='" + name + '\'' + '}'; } public class RangesMultiSelectDSL { private final Iterable> ranges; public RangesMultiSelectDSL(Iterable> ranges) { this.ranges = ranges; } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public MoneyAttribute.RangesMultiSelect selected(Range selectedRange, Range... selectedRanges) { return selected(list(selectedRange, selectedRanges)); } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public MoneyAttribute.RangesMultiSelect selected(Iterable> selectedRanges) { return new MoneyAttribute.RangesMultiSelect(name, selectedRanges, ranges); } @Override public String toString() { return "RangesMultiSelectDSL{" + "ranges=" + ranges + '}'; } } } /** Requests facet counts for the price attribute to be calculated. */ public static PriceDSL price = new PriceDSL(); public static class PriceDSL { /** Counts occurrences of each distinct value found in the result set. */ public Terms terms() { return new Terms(Names.priceFull); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public Price.TermsMultiSelect termsMultiSelect(BigDecimal selectedValue, BigDecimal... selectedValues) { return termsMultiSelect(list(selectedValue, selectedValues)); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public Price.TermsMultiSelect termsMultiSelect(Iterable selectedValues) { return new Price.TermsMultiSelect(selectedValues); } /** For each range, counts how many results fall into that range. */ public Price.Ranges ranges(Range range, Range... ranges) { return ranges(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public Price.Ranges ranges(Iterable> ranges) { return new Price.Ranges(ranges); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Range range, Range... ranges) { return rangesMultiSelect(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Iterable> ranges) { return new RangesMultiSelectDSL(ranges); } public class RangesMultiSelectDSL { private final Iterable> ranges; public RangesMultiSelectDSL(Iterable> ranges) { this.ranges = ranges; } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public Price.RangesMultiSelect selected(Range selectedRange, Range... selectedRanges) { return selected(list(selectedRange, selectedRanges)); } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public Price.RangesMultiSelect selected(Iterable> selectedRanges) { return new Price.RangesMultiSelect(selectedRanges, ranges); } @Override public String toString() { return "RangesMultiSelectDSL{" + "ranges=" + ranges + '}'; } } } /** Requests facet counts for a custom DateTime attribute to be calculated. */ public static DateTimeAttrDSL dateTimeAttribute(String name) { return new DateTimeAttrDSL(name); } public static class DateTimeAttrDSL { private final String name; public DateTimeAttrDSL(String name) { this.name = name; } /** Counts occurrences of each distinct value found in the result set. */ public Terms terms() { return new Terms(name); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public DateTimeAttribute.TermsMultiSelect termsMultiSelect(DateTime selectedValue, DateTime... selectedValues) { return termsMultiSelect(list(selectedValue, selectedValues)); } /** Counts occurrences of each distinct value and filters the result set by selected values. */ public DateTimeAttribute.TermsMultiSelect termsMultiSelect(Iterable selectedValues) { return new DateTimeAttribute.TermsMultiSelect(name, selectedValues); } /** For each range, counts how many results fall into that range. */ public DateTimeAttribute.Ranges ranges(Range range, Range... ranges) { return ranges(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public DateTimeAttribute.Ranges ranges(Iterable> ranges) { return new DateTimeAttribute.Ranges(name, ranges); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Range range, Range... ranges) { return rangesMultiSelect(list(range, ranges)); } /** For each range, counts how many results fall into that range. */ public RangesMultiSelectDSL rangesMultiSelect(Iterable> ranges) { return new RangesMultiSelectDSL(ranges); } @Override public String toString() { return "DateTimeAttrDSL{" + "name='" + name + '\'' + '}'; } public class RangesMultiSelectDSL { private final Iterable> ranges; public RangesMultiSelectDSL(Iterable> ranges) { this.ranges = ranges; } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public DateTimeAttribute.RangesMultiSelect selected(Range selectedRange, Range... selectedRanges) { return selected(list(selectedRange, selectedRanges)); } /** Specified selected ranges. Only results that fall into any of the ranges will be returned. */ public DateTimeAttribute.RangesMultiSelect selected(Iterable> selectedRanges) { return new DateTimeAttribute.RangesMultiSelect(name, selectedRanges, ranges); } @Override public String toString() { return "RangesMultiSelectDSL{" + "ranges=" + ranges + '}'; } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy