001
002package com.commercetools.api.predicates.query.common;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class KeyReferenceQueryBuilderDsl {
009    public KeyReferenceQueryBuilderDsl() {
010    }
011
012    public static KeyReferenceQueryBuilderDsl of() {
013        return new KeyReferenceQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<KeyReferenceQueryBuilderDsl> typeId() {
017        return new StringComparisonPredicateBuilder<>(
018            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("typeId")),
019            p -> new CombinationQueryPredicate<>(p, KeyReferenceQueryBuilderDsl::of));
020    }
021
022    public StringComparisonPredicateBuilder<KeyReferenceQueryBuilderDsl> key() {
023        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("key")),
024            p -> new CombinationQueryPredicate<>(p, KeyReferenceQueryBuilderDsl::of));
025    }
026
027    public CombinationQueryPredicate<KeyReferenceQueryBuilderDsl> asAssociateRole(
028            Function<com.commercetools.api.predicates.query.associate_role.AssociateRoleKeyReferenceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.associate_role.AssociateRoleKeyReferenceQueryBuilderDsl>> fn) {
029        return new CombinationQueryPredicate<>(
030            fn.apply(
031                com.commercetools.api.predicates.query.associate_role.AssociateRoleKeyReferenceQueryBuilderDsl.of()),
032            KeyReferenceQueryBuilderDsl::of);
033    }
034
035    public CombinationQueryPredicate<KeyReferenceQueryBuilderDsl> asBusinessUnit(
036            Function<com.commercetools.api.predicates.query.business_unit.BusinessUnitKeyReferenceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.business_unit.BusinessUnitKeyReferenceQueryBuilderDsl>> fn) {
037        return new CombinationQueryPredicate<>(
038            fn.apply(com.commercetools.api.predicates.query.business_unit.BusinessUnitKeyReferenceQueryBuilderDsl.of()),
039            KeyReferenceQueryBuilderDsl::of);
040    }
041
042    public CombinationQueryPredicate<KeyReferenceQueryBuilderDsl> asStore(
043            Function<com.commercetools.api.predicates.query.store.StoreKeyReferenceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.store.StoreKeyReferenceQueryBuilderDsl>> fn) {
044        return new CombinationQueryPredicate<>(
045            fn.apply(com.commercetools.api.predicates.query.store.StoreKeyReferenceQueryBuilderDsl.of()),
046            KeyReferenceQueryBuilderDsl::of);
047    }
048}