001
002package com.commercetools.api.predicates.query.order;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class ParcelDraftQueryBuilderDsl {
009    public ParcelDraftQueryBuilderDsl() {
010    }
011
012    public static ParcelDraftQueryBuilderDsl of() {
013        return new ParcelDraftQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<ParcelDraftQueryBuilderDsl> key() {
017        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("key")),
018            p -> new CombinationQueryPredicate<>(p, ParcelDraftQueryBuilderDsl::of));
019    }
020
021    public CombinationQueryPredicate<ParcelDraftQueryBuilderDsl> measurements(
022            Function<com.commercetools.api.predicates.query.order.ParcelMeasurementsQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.ParcelMeasurementsQueryBuilderDsl>> fn) {
023        return new CombinationQueryPredicate<>(ContainerQueryPredicate.of()
024                .parent(ConstantQueryPredicate.of().constant("measurements"))
025                .inner(fn.apply(com.commercetools.api.predicates.query.order.ParcelMeasurementsQueryBuilderDsl.of())),
026            ParcelDraftQueryBuilderDsl::of);
027    }
028
029    public CombinationQueryPredicate<ParcelDraftQueryBuilderDsl> trackingData(
030            Function<com.commercetools.api.predicates.query.order.TrackingDataQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.TrackingDataQueryBuilderDsl>> fn) {
031        return new CombinationQueryPredicate<>(
032            ContainerQueryPredicate.of()
033                    .parent(ConstantQueryPredicate.of().constant("trackingData"))
034                    .inner(fn.apply(com.commercetools.api.predicates.query.order.TrackingDataQueryBuilderDsl.of())),
035            ParcelDraftQueryBuilderDsl::of);
036    }
037
038    public CombinationQueryPredicate<ParcelDraftQueryBuilderDsl> items(
039            Function<com.commercetools.api.predicates.query.order.DeliveryItemQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.order.DeliveryItemQueryBuilderDsl>> fn) {
040        return new CombinationQueryPredicate<>(
041            ContainerQueryPredicate.of()
042                    .parent(ConstantQueryPredicate.of().constant("items"))
043                    .inner(fn.apply(com.commercetools.api.predicates.query.order.DeliveryItemQueryBuilderDsl.of())),
044            ParcelDraftQueryBuilderDsl::of);
045    }
046
047    public CollectionPredicateBuilder<ParcelDraftQueryBuilderDsl> items() {
048        return new CollectionPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("items")),
049            p -> new CombinationQueryPredicate<>(p, ParcelDraftQueryBuilderDsl::of));
050    }
051
052    public CombinationQueryPredicate<ParcelDraftQueryBuilderDsl> custom(
053            Function<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl>> fn) {
054        return new CombinationQueryPredicate<>(
055            ContainerQueryPredicate.of()
056                    .parent(ConstantQueryPredicate.of().constant("custom"))
057                    .inner(fn.apply(com.commercetools.api.predicates.query.type.CustomFieldsDraftQueryBuilderDsl.of())),
058            ParcelDraftQueryBuilderDsl::of);
059    }
060
061}