001 002package com.commercetools.api.predicates.query.shipping_method; 003 004import java.util.function.Function; 005 006import com.commercetools.api.predicates.query.*; 007 008public class ShippingRateQueryBuilderDsl { 009 public ShippingRateQueryBuilderDsl() { 010 } 011 012 public static ShippingRateQueryBuilderDsl of() { 013 return new ShippingRateQueryBuilderDsl(); 014 } 015 016 public CombinationQueryPredicate<ShippingRateQueryBuilderDsl> price( 017 Function<com.commercetools.api.predicates.query.common.TypedMoneyQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.TypedMoneyQueryBuilderDsl>> fn) { 018 return new CombinationQueryPredicate<>( 019 ContainerQueryPredicate.of() 020 .parent(ConstantQueryPredicate.of().constant("price")) 021 .inner(fn.apply(com.commercetools.api.predicates.query.common.TypedMoneyQueryBuilderDsl.of())), 022 ShippingRateQueryBuilderDsl::of); 023 } 024 025 public CombinationQueryPredicate<ShippingRateQueryBuilderDsl> freeAbove( 026 Function<com.commercetools.api.predicates.query.common.TypedMoneyQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.TypedMoneyQueryBuilderDsl>> fn) { 027 return new CombinationQueryPredicate<>( 028 ContainerQueryPredicate.of() 029 .parent(ConstantQueryPredicate.of().constant("freeAbove")) 030 .inner(fn.apply(com.commercetools.api.predicates.query.common.TypedMoneyQueryBuilderDsl.of())), 031 ShippingRateQueryBuilderDsl::of); 032 } 033 034 public BooleanComparisonPredicateBuilder<ShippingRateQueryBuilderDsl> isMatching() { 035 return new BooleanComparisonPredicateBuilder<>( 036 BinaryQueryPredicate.of().left(new ConstantQueryPredicate("isMatching")), 037 p -> new CombinationQueryPredicate<>(p, ShippingRateQueryBuilderDsl::of)); 038 } 039 040 public CombinationQueryPredicate<ShippingRateQueryBuilderDsl> tiers( 041 Function<com.commercetools.api.predicates.query.shipping_method.ShippingRatePriceTierQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.shipping_method.ShippingRatePriceTierQueryBuilderDsl>> fn) { 042 return new CombinationQueryPredicate<>(ContainerQueryPredicate.of() 043 .parent(ConstantQueryPredicate.of().constant("tiers")) 044 .inner(fn.apply( 045 com.commercetools.api.predicates.query.shipping_method.ShippingRatePriceTierQueryBuilderDsl.of())), 046 ShippingRateQueryBuilderDsl::of); 047 } 048 049 public CollectionPredicateBuilder<ShippingRateQueryBuilderDsl> tiers() { 050 return new CollectionPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("tiers")), 051 p -> new CombinationQueryPredicate<>(p, ShippingRateQueryBuilderDsl::of)); 052 } 053 054}