001 002package com.commercetools.ml.models.similar_products; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.validation.Valid; 009import javax.validation.constraints.NotNull; 010 011import com.fasterxml.jackson.annotation.*; 012import com.fasterxml.jackson.databind.annotation.*; 013 014import io.vrap.rmf.base.client.utils.Generated; 015 016/** 017 * <p>A pair of SimilarProducts</p> 018 * 019 * <hr> 020 * Example to create an instance using the builder pattern 021 * <div class=code-example> 022 * <pre><code class='java'> 023 * SimilarProductPair similarProductPair = SimilarProductPair.builder() 024 * .confidence(0.3) 025 * .plusProducts(productsBuilder -> productsBuilder) 026 * .build() 027 * </code></pre> 028 * </div> 029 */ 030@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 031@JsonDeserialize(as = SimilarProductPairImpl.class) 032public interface SimilarProductPair { 033 034 /** 035 * <p>The probability of product similarity.</p> 036 */ 037 @NotNull 038 @JsonProperty("confidence") 039 public Double getConfidence(); 040 041 /** 042 * 043 */ 044 @NotNull 045 @Valid 046 @JsonProperty("products") 047 public List<SimilarProduct> getProducts(); 048 049 public void setConfidence(final Double confidence); 050 051 @JsonIgnore 052 public void setProducts(final SimilarProduct... products); 053 054 public void setProducts(final List<SimilarProduct> products); 055 056 public static SimilarProductPair of() { 057 return new SimilarProductPairImpl(); 058 } 059 060 public static SimilarProductPair of(final SimilarProductPair template) { 061 SimilarProductPairImpl instance = new SimilarProductPairImpl(); 062 instance.setConfidence(template.getConfidence()); 063 instance.setProducts(template.getProducts()); 064 return instance; 065 } 066 067 public static SimilarProductPairBuilder builder() { 068 return SimilarProductPairBuilder.of(); 069 } 070 071 public static SimilarProductPairBuilder builder(final SimilarProductPair template) { 072 return SimilarProductPairBuilder.of(template); 073 } 074 075 default <T> T withSimilarProductPair(Function<SimilarProductPair, T> helper) { 076 return helper.apply(this); 077 } 078 079 public static com.fasterxml.jackson.core.type.TypeReference<SimilarProductPair> typeReference() { 080 return new com.fasterxml.jackson.core.type.TypeReference<SimilarProductPair>() { 081 @Override 082 public String toString() { 083 return "TypeReference<SimilarProductPair>"; 084 } 085 }; 086 } 087}