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