001
002package com.commercetools.api.predicates.query.order;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class OrderAddDeliveryActionQueryBuilderDsl {
009    public OrderAddDeliveryActionQueryBuilderDsl() {
010    }
011
012    public static OrderAddDeliveryActionQueryBuilderDsl of() {
013        return new OrderAddDeliveryActionQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<OrderAddDeliveryActionQueryBuilderDsl> action() {
017        return new StringComparisonPredicateBuilder<>(
018            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("action")),
019            p -> new CombinationQueryPredicate<>(p, OrderAddDeliveryActionQueryBuilderDsl::of));
020    }
021
022    public StringComparisonPredicateBuilder<OrderAddDeliveryActionQueryBuilderDsl> deliveryKey() {
023        return new StringComparisonPredicateBuilder<>(
024            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("deliveryKey")),
025            p -> new CombinationQueryPredicate<>(p, OrderAddDeliveryActionQueryBuilderDsl::of));
026    }
027
028    public CombinationQueryPredicate<OrderAddDeliveryActionQueryBuilderDsl> items(
029            Function<com.commercetools.api.predicates.query.order.DeliveryItemQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.DeliveryItemQueryBuilderDsl>> fn) {
030        return new CombinationQueryPredicate<>(
031            ContainerQueryPredicate.of()
032                    .parent(ConstantQueryPredicate.of().constant("items"))
033                    .inner(fn.apply(com.commercetools.api.predicates.query.order.DeliveryItemQueryBuilderDsl.of())),
034            OrderAddDeliveryActionQueryBuilderDsl::of);
035    }
036
037    public CollectionPredicateBuilder<OrderAddDeliveryActionQueryBuilderDsl> items() {
038        return new CollectionPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("items")),
039            p -> new CombinationQueryPredicate<>(p, OrderAddDeliveryActionQueryBuilderDsl::of));
040    }
041
042    public StringComparisonPredicateBuilder<OrderAddDeliveryActionQueryBuilderDsl> shippingKey() {
043        return new StringComparisonPredicateBuilder<>(
044            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("shippingKey")),
045            p -> new CombinationQueryPredicate<>(p, OrderAddDeliveryActionQueryBuilderDsl::of));
046    }
047
048    public CombinationQueryPredicate<OrderAddDeliveryActionQueryBuilderDsl> address(
049            Function<com.commercetools.api.predicates.query.common.BaseAddressQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.BaseAddressQueryBuilderDsl>> fn) {
050        return new CombinationQueryPredicate<>(
051            ContainerQueryPredicate.of()
052                    .parent(ConstantQueryPredicate.of().constant("address"))
053                    .inner(fn.apply(com.commercetools.api.predicates.query.common.BaseAddressQueryBuilderDsl.of())),
054            OrderAddDeliveryActionQueryBuilderDsl::of);
055    }
056
057    public CombinationQueryPredicate<OrderAddDeliveryActionQueryBuilderDsl> parcels(
058            Function<com.commercetools.api.predicates.query.order.ParcelDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.ParcelDraftQueryBuilderDsl>> fn) {
059        return new CombinationQueryPredicate<>(
060            ContainerQueryPredicate.of()
061                    .parent(ConstantQueryPredicate.of().constant("parcels"))
062                    .inner(fn.apply(com.commercetools.api.predicates.query.order.ParcelDraftQueryBuilderDsl.of())),
063            OrderAddDeliveryActionQueryBuilderDsl::of);
064    }
065
066    public CollectionPredicateBuilder<OrderAddDeliveryActionQueryBuilderDsl> parcels() {
067        return new CollectionPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("parcels")),
068            p -> new CombinationQueryPredicate<>(p, OrderAddDeliveryActionQueryBuilderDsl::of));
069    }
070
071    public CombinationQueryPredicate<OrderAddDeliveryActionQueryBuilderDsl> custom(
072            Function<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl>> fn) {
073        return new CombinationQueryPredicate<>(
074            ContainerQueryPredicate.of()
075                    .parent(ConstantQueryPredicate.of().constant("custom"))
076                    .inner(fn.apply(com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl.of())),
077            OrderAddDeliveryActionQueryBuilderDsl::of);
078    }
079
080}