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