001
002package com.commercetools.ml.models.similar_products;
003
004import java.util.*;
005import java.util.function.Function;
006
007import io.vrap.rmf.base.client.Builder;
008import io.vrap.rmf.base.client.utils.Generated;
009
010/**
011 * SimilarProductSearchRequestMetaBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     SimilarProductSearchRequestMeta similarProductSearchRequestMeta = SimilarProductSearchRequestMeta.builder()
017 *             .similarityMeasures(similarityMeasuresBuilder -> similarityMeasuresBuilder)
018 *             .build()
019 * </code></pre>
020 * </div>
021 */
022@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
023public class SimilarProductSearchRequestMetaBuilder implements Builder<SimilarProductSearchRequestMeta> {
024
025    private com.commercetools.ml.models.similar_products.SimilarityMeasures similarityMeasures;
026
027    /**
028     *  <p>The SimilarityMeasures used in this search.</p>
029     */
030
031    public SimilarProductSearchRequestMetaBuilder similarityMeasures(
032            Function<com.commercetools.ml.models.similar_products.SimilarityMeasuresBuilder, com.commercetools.ml.models.similar_products.SimilarityMeasuresBuilder> builder) {
033        this.similarityMeasures = builder
034                .apply(com.commercetools.ml.models.similar_products.SimilarityMeasuresBuilder.of())
035                .build();
036        return this;
037    }
038
039    /**
040     *  <p>The SimilarityMeasures used in this search.</p>
041     */
042
043    public SimilarProductSearchRequestMetaBuilder similarityMeasures(
044            final com.commercetools.ml.models.similar_products.SimilarityMeasures similarityMeasures) {
045        this.similarityMeasures = similarityMeasures;
046        return this;
047    }
048
049    public com.commercetools.ml.models.similar_products.SimilarityMeasures getSimilarityMeasures() {
050        return this.similarityMeasures;
051    }
052
053    public SimilarProductSearchRequestMeta build() {
054        Objects.requireNonNull(similarityMeasures,
055            SimilarProductSearchRequestMeta.class + ": similarityMeasures is missing");
056        return new SimilarProductSearchRequestMetaImpl(similarityMeasures);
057    }
058
059    /**
060     * builds SimilarProductSearchRequestMeta without checking for non null required values
061     */
062    public SimilarProductSearchRequestMeta buildUnchecked() {
063        return new SimilarProductSearchRequestMetaImpl(similarityMeasures);
064    }
065
066    public static SimilarProductSearchRequestMetaBuilder of() {
067        return new SimilarProductSearchRequestMetaBuilder();
068    }
069
070    public static SimilarProductSearchRequestMetaBuilder of(final SimilarProductSearchRequestMeta template) {
071        SimilarProductSearchRequestMetaBuilder builder = new SimilarProductSearchRequestMetaBuilder();
072        builder.similarityMeasures = template.getSimilarityMeasures();
073        return builder;
074    }
075
076}