001 002package com.commercetools.ml.models.similar_products; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007 008import javax.annotation.Nullable; 009import javax.validation.Valid; 010import javax.validation.constraints.NotNull; 011 012import com.fasterxml.jackson.annotation.*; 013import com.fasterxml.jackson.databind.annotation.*; 014 015import io.vrap.rmf.base.client.utils.Generated; 016 017/** 018 * SimilarProductSearchRequestMeta 019 * 020 * <hr> 021 * Example to create an instance using the builder pattern 022 * <div class=code-example> 023 * <pre><code class='java'> 024 * SimilarProductSearchRequestMeta similarProductSearchRequestMeta = SimilarProductSearchRequestMeta.builder() 025 * .similarityMeasures(similarityMeasuresBuilder -> similarityMeasuresBuilder) 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 = SimilarProductSearchRequestMetaImpl.class) 032public interface SimilarProductSearchRequestMeta { 033 034 /** 035 * <p>The SimilarityMeasures used in this search.</p> 036 * @return similarityMeasures 037 */ 038 @NotNull 039 @Valid 040 @JsonProperty("similarityMeasures") 041 public SimilarityMeasures getSimilarityMeasures(); 042 043 /** 044 * <p>The SimilarityMeasures used in this search.</p> 045 * @param similarityMeasures value to be set 046 */ 047 048 public void setSimilarityMeasures(final SimilarityMeasures similarityMeasures); 049 050 /** 051 * factory method 052 * @return instance of SimilarProductSearchRequestMeta 053 */ 054 public static SimilarProductSearchRequestMeta of() { 055 return new SimilarProductSearchRequestMetaImpl(); 056 } 057 058 /** 059 * factory method to create a shallow copy SimilarProductSearchRequestMeta 060 * @param template instance to be copied 061 * @return copy instance 062 */ 063 public static SimilarProductSearchRequestMeta of(final SimilarProductSearchRequestMeta template) { 064 SimilarProductSearchRequestMetaImpl instance = new SimilarProductSearchRequestMetaImpl(); 065 instance.setSimilarityMeasures(template.getSimilarityMeasures()); 066 return instance; 067 } 068 069 /** 070 * factory method to create a deep copy of SimilarProductSearchRequestMeta 071 * @param template instance to be copied 072 * @return copy instance 073 */ 074 @Nullable 075 public static SimilarProductSearchRequestMeta deepCopy(@Nullable final SimilarProductSearchRequestMeta template) { 076 if (template == null) { 077 return null; 078 } 079 SimilarProductSearchRequestMetaImpl instance = new SimilarProductSearchRequestMetaImpl(); 080 instance.setSimilarityMeasures( 081 com.commercetools.ml.models.similar_products.SimilarityMeasures.deepCopy(template.getSimilarityMeasures())); 082 return instance; 083 } 084 085 /** 086 * builder factory method for SimilarProductSearchRequestMeta 087 * @return builder 088 */ 089 public static SimilarProductSearchRequestMetaBuilder builder() { 090 return SimilarProductSearchRequestMetaBuilder.of(); 091 } 092 093 /** 094 * create builder for SimilarProductSearchRequestMeta instance 095 * @param template instance with prefilled values for the builder 096 * @return builder 097 */ 098 public static SimilarProductSearchRequestMetaBuilder builder(final SimilarProductSearchRequestMeta template) { 099 return SimilarProductSearchRequestMetaBuilder.of(template); 100 } 101 102 /** 103 * accessor map function 104 * @param <T> mapped type 105 * @param helper function to map the object 106 * @return mapped value 107 */ 108 default <T> T withSimilarProductSearchRequestMeta(Function<SimilarProductSearchRequestMeta, T> helper) { 109 return helper.apply(this); 110 } 111 112 /** 113 * gives a TypeReference for usage with Jackson DataBind 114 * @return TypeReference 115 */ 116 public static com.fasterxml.jackson.core.type.TypeReference<SimilarProductSearchRequestMeta> typeReference() { 117 return new com.fasterxml.jackson.core.type.TypeReference<SimilarProductSearchRequestMeta>() { 118 @Override 119 public String toString() { 120 return "TypeReference<SimilarProductSearchRequestMeta>"; 121 } 122 }; 123 } 124}