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}