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}