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