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