001
002package com.commercetools.ml.models.similar_products;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007
008import com.fasterxml.jackson.annotation.*;
009import com.fasterxml.jackson.databind.annotation.*;
010
011import io.vrap.rmf.base.client.utils.Generated;
012
013/**
014 *  <p>Specify which ProductData attributes to use for estimating similarity and how to weigh them. An attribute's weight can be any whole positive integer, starting with 0. The larger the integer, the higher its weight.</p>
015 *
016 * <hr>
017 * Example to create an instance using the builder pattern
018 * <div class=code-example>
019 * <pre><code class='java'>
020 *     SimilarityMeasures similarityMeasures = SimilarityMeasures.builder()
021 *             .build()
022 * </code></pre>
023 * </div>
024 */
025@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
026@JsonDeserialize(as = SimilarityMeasuresImpl.class)
027public interface SimilarityMeasures {
028
029    /**
030     *  <p>Importance of the <code>name</code> attribute in overall similarity.</p>
031     */
032
033    @JsonProperty("name")
034    public Long getName();
035
036    /**
037     *  <p>Importance of the <code>description</code> attribute in overall similarity.</p>
038     */
039
040    @JsonProperty("description")
041    public Long getDescription();
042
043    /**
044     *  <p>Importance of the <code>description</code> attribute in overall similarity.</p>
045     */
046
047    @JsonProperty("attribute")
048    public Long getAttribute();
049
050    /**
051     *  <p>Importance of the number of product variants in overall similarity.</p>
052     */
053
054    @JsonProperty("variantCount")
055    public Long getVariantCount();
056
057    /**
058     *  <p>Importance of the <code>price</code> attribute in overall similarity.</p>
059     */
060
061    @JsonProperty("price")
062    public Long getPrice();
063
064    public void setName(final Long name);
065
066    public void setDescription(final Long description);
067
068    public void setAttribute(final Long attribute);
069
070    public void setVariantCount(final Long variantCount);
071
072    public void setPrice(final Long price);
073
074    public static SimilarityMeasures of() {
075        return new SimilarityMeasuresImpl();
076    }
077
078    public static SimilarityMeasures of(final SimilarityMeasures template) {
079        SimilarityMeasuresImpl instance = new SimilarityMeasuresImpl();
080        instance.setName(template.getName());
081        instance.setDescription(template.getDescription());
082        instance.setAttribute(template.getAttribute());
083        instance.setVariantCount(template.getVariantCount());
084        instance.setPrice(template.getPrice());
085        return instance;
086    }
087
088    public static SimilarityMeasuresBuilder builder() {
089        return SimilarityMeasuresBuilder.of();
090    }
091
092    public static SimilarityMeasuresBuilder builder(final SimilarityMeasures template) {
093        return SimilarityMeasuresBuilder.of(template);
094    }
095
096    default <T> T withSimilarityMeasures(Function<SimilarityMeasures, T> helper) {
097        return helper.apply(this);
098    }
099
100    public static com.fasterxml.jackson.core.type.TypeReference<SimilarityMeasures> typeReference() {
101        return new com.fasterxml.jackson.core.type.TypeReference<SimilarityMeasures>() {
102            @Override
103            public String toString() {
104                return "TypeReference<SimilarityMeasures>";
105            }
106        };
107    }
108}