001
002package com.commercetools.api.predicates.query.common;
003
004import java.util.function.Function;
005
006import com.commercetools.api.predicates.query.*;
007
008public class AssetQueryBuilderDsl {
009    public AssetQueryBuilderDsl() {
010    }
011
012    public static AssetQueryBuilderDsl of() {
013        return new AssetQueryBuilderDsl();
014    }
015
016    public StringComparisonPredicateBuilder<AssetQueryBuilderDsl> id() {
017        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("id")),
018            p -> new CombinationQueryPredicate<>(p, AssetQueryBuilderDsl::of));
019    }
020
021    public CombinationQueryPredicate<AssetQueryBuilderDsl> sources(
022            Function<com.commercetools.api.predicates.query.common.AssetSourceQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.AssetSourceQueryBuilderDsl>> fn) {
023        return new CombinationQueryPredicate<>(
024            ContainerQueryPredicate.of()
025                    .parent(ConstantQueryPredicate.of().constant("sources"))
026                    .inner(fn.apply(com.commercetools.api.predicates.query.common.AssetSourceQueryBuilderDsl.of())),
027            AssetQueryBuilderDsl::of);
028    }
029
030    public CollectionPredicateBuilder<AssetQueryBuilderDsl> sources() {
031        return new CollectionPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("sources")),
032            p -> new CombinationQueryPredicate<>(p, AssetQueryBuilderDsl::of));
033    }
034
035    public CombinationQueryPredicate<AssetQueryBuilderDsl> name(
036            Function<com.commercetools.api.predicates.query.common.LocalizedStringQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.LocalizedStringQueryBuilderDsl>> fn) {
037        return new CombinationQueryPredicate<>(
038            ContainerQueryPredicate.of()
039                    .parent(ConstantQueryPredicate.of().constant("name"))
040                    .inner(fn.apply(com.commercetools.api.predicates.query.common.LocalizedStringQueryBuilderDsl.of())),
041            AssetQueryBuilderDsl::of);
042    }
043
044    public CombinationQueryPredicate<AssetQueryBuilderDsl> description(
045            Function<com.commercetools.api.predicates.query.common.LocalizedStringQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.common.LocalizedStringQueryBuilderDsl>> fn) {
046        return new CombinationQueryPredicate<>(
047            ContainerQueryPredicate.of()
048                    .parent(ConstantQueryPredicate.of().constant("description"))
049                    .inner(fn.apply(com.commercetools.api.predicates.query.common.LocalizedStringQueryBuilderDsl.of())),
050            AssetQueryBuilderDsl::of);
051    }
052
053    public StringCollectionPredicateBuilder<AssetQueryBuilderDsl> tags() {
054        return new StringCollectionPredicateBuilder<>(
055            BinaryQueryPredicate.of().left(new ConstantQueryPredicate("tags")),
056            p -> new CombinationQueryPredicate<>(p, AssetQueryBuilderDsl::of));
057    }
058
059    public CombinationQueryPredicate<AssetQueryBuilderDsl> custom(
060            Function<com.commercetools.api.predicates.query.type.CustomFieldsQueryBuilderDsl, CombinationQueryPredicate<com.commercetools.api.predicates.query.type.CustomFieldsQueryBuilderDsl>> fn) {
061        return new CombinationQueryPredicate<>(
062            ContainerQueryPredicate.of()
063                    .parent(ConstantQueryPredicate.of().constant("custom"))
064                    .inner(fn.apply(com.commercetools.api.predicates.query.type.CustomFieldsQueryBuilderDsl.of())),
065            AssetQueryBuilderDsl::of);
066    }
067
068    public StringComparisonPredicateBuilder<AssetQueryBuilderDsl> key() {
069        return new StringComparisonPredicateBuilder<>(BinaryQueryPredicate.of().left(new ConstantQueryPredicate("key")),
070            p -> new CombinationQueryPredicate<>(p, AssetQueryBuilderDsl::of));
071    }
072
073}