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