-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
|
||
package com.commercetools.api.search.products; | ||
|
||
import java.util.Objects; | ||
import java.util.function.Function; | ||
|
||
public class RangeFacetExpressionBuilder<T> implements FilterExpression { | ||
private final PathExpression expression; | ||
private final Function<T, FilterExpression> formatter; | ||
|
||
public RangeFacetExpressionBuilder() { | ||
this.expression = null; | ||
this.formatter = null; | ||
} | ||
Check warning on line 14 in commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/search/products/RangeFacetExpressionBuilder.java
|
||
|
||
public RangeFacetExpressionBuilder(PathExpression expression, Function<T, FilterExpression> formatter) { | ||
this.expression = expression; | ||
this.formatter = formatter; | ||
} | ||
|
||
public TermFacetExpression<T> is(T value) { | ||
return TermFacetExpression.of(expression, formatter).is(value); | ||
} | ||
|
||
public TermFacetExpression<T> isIn(Iterable<T> values) { | ||
return TermFacetExpression.of(expression, formatter).isIn(values); | ||
Check warning on line 26 in commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/search/products/RangeFacetExpressionBuilder.java
|
||
} | ||
|
||
public RangeFacetExpression<T> rangeFrom(T from) { | ||
return RangeFacetExpression.of(expression, formatter).rangeFrom(from); | ||
Check warning on line 30 in commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/search/products/RangeFacetExpressionBuilder.java
|
||
} | ||
|
||
public RangeFacetExpression<T> rangeTo(T to) { | ||
return RangeFacetExpression.of(expression, formatter).rangeTo(to); | ||
Check warning on line 34 in commercetools/commercetools-sdk-java-api/src/main/java/com/commercetools/api/search/products/RangeFacetExpressionBuilder.java
|
||
} | ||
|
||
public RangeFacetExpression<T> range(T from, T to) { | ||
return RangeFacetExpression.of(expression, formatter).range(from, to); | ||
} | ||
|
||
@Override | ||
public String render() { | ||
Objects.requireNonNull(expression); | ||
return expression.render(); | ||
} | ||
|
||
public static <T> RangeFacetExpressionBuilder<T> of(PathExpression expression, | ||
Function<T, FilterExpression> formatter) { | ||
return new RangeFacetExpressionBuilder<>(expression, formatter); | ||
} | ||
} |