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