001 002package com.commercetools.ml.models.general_category_recommendations; 003 004import java.time.*; 005import java.util.*; 006import java.util.function.Function; 007import java.util.stream.Collectors; 008 009import javax.annotation.Nullable; 010import javax.validation.Valid; 011import javax.validation.constraints.NotNull; 012 013import com.fasterxml.jackson.annotation.*; 014import com.fasterxml.jackson.databind.annotation.*; 015 016import io.vrap.rmf.base.client.utils.Generated; 017 018/** 019 * GeneralCategoryRecommendationPagedQueryResponse 020 * 021 * <hr> 022 * Example to create an instance using the builder pattern 023 * <div class=code-example> 024 * <pre><code class='java'> 025 * GeneralCategoryRecommendationPagedQueryResponse generalCategoryRecommendationPagedQueryResponse = GeneralCategoryRecommendationPagedQueryResponse.builder() 026 * .count(0.3) 027 * .total(0.3) 028 * .offset(0.3) 029 * .plusResults(resultsBuilder -> resultsBuilder) 030 * .build() 031 * </code></pre> 032 * </div> 033 */ 034@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 035@JsonDeserialize(as = GeneralCategoryRecommendationPagedQueryResponseImpl.class) 036public interface GeneralCategoryRecommendationPagedQueryResponse { 037 038 /** 039 * 040 * @return count 041 */ 042 @NotNull 043 @JsonProperty("count") 044 public Long getCount(); 045 046 /** 047 * 048 * @return total 049 */ 050 @NotNull 051 @JsonProperty("total") 052 public Long getTotal(); 053 054 /** 055 * <p>Number of elements skipped.</p> 056 * @return offset 057 */ 058 @NotNull 059 @JsonProperty("offset") 060 public Long getOffset(); 061 062 /** 063 * 064 * @return results 065 */ 066 @NotNull 067 @Valid 068 @JsonProperty("results") 069 public List<GeneralCategoryRecommendation> getResults(); 070 071 /** 072 * set count 073 * @param count value to be set 074 */ 075 076 public void setCount(final Long count); 077 078 /** 079 * set total 080 * @param total value to be set 081 */ 082 083 public void setTotal(final Long total); 084 085 /** 086 * <p>Number of elements skipped.</p> 087 * @param offset value to be set 088 */ 089 090 public void setOffset(final Long offset); 091 092 /** 093 * set results 094 * @param results values to be set 095 */ 096 097 @JsonIgnore 098 public void setResults(final GeneralCategoryRecommendation... results); 099 100 /** 101 * set results 102 * @param results values to be set 103 */ 104 105 public void setResults(final List<GeneralCategoryRecommendation> results); 106 107 /** 108 * factory method 109 * @return instance of GeneralCategoryRecommendationPagedQueryResponse 110 */ 111 public static GeneralCategoryRecommendationPagedQueryResponse of() { 112 return new GeneralCategoryRecommendationPagedQueryResponseImpl(); 113 } 114 115 /** 116 * factory method to create a shallow copy GeneralCategoryRecommendationPagedQueryResponse 117 * @param template instance to be copied 118 * @return copy instance 119 */ 120 public static GeneralCategoryRecommendationPagedQueryResponse of( 121 final GeneralCategoryRecommendationPagedQueryResponse template) { 122 GeneralCategoryRecommendationPagedQueryResponseImpl instance = new GeneralCategoryRecommendationPagedQueryResponseImpl(); 123 instance.setCount(template.getCount()); 124 instance.setTotal(template.getTotal()); 125 instance.setOffset(template.getOffset()); 126 instance.setResults(template.getResults()); 127 return instance; 128 } 129 130 /** 131 * factory method to create a deep copy of GeneralCategoryRecommendationPagedQueryResponse 132 * @param template instance to be copied 133 * @return copy instance 134 */ 135 @Nullable 136 public static GeneralCategoryRecommendationPagedQueryResponse deepCopy( 137 @Nullable final GeneralCategoryRecommendationPagedQueryResponse template) { 138 if (template == null) { 139 return null; 140 } 141 GeneralCategoryRecommendationPagedQueryResponseImpl instance = new GeneralCategoryRecommendationPagedQueryResponseImpl(); 142 instance.setCount(template.getCount()); 143 instance.setTotal(template.getTotal()); 144 instance.setOffset(template.getOffset()); 145 instance.setResults(Optional.ofNullable(template.getResults()) 146 .map(t -> t.stream() 147 .map( 148 com.commercetools.ml.models.general_category_recommendations.GeneralCategoryRecommendation::deepCopy) 149 .collect(Collectors.toList())) 150 .orElse(null)); 151 return instance; 152 } 153 154 /** 155 * builder factory method for GeneralCategoryRecommendationPagedQueryResponse 156 * @return builder 157 */ 158 public static GeneralCategoryRecommendationPagedQueryResponseBuilder builder() { 159 return GeneralCategoryRecommendationPagedQueryResponseBuilder.of(); 160 } 161 162 /** 163 * create builder for GeneralCategoryRecommendationPagedQueryResponse instance 164 * @param template instance with prefilled values for the builder 165 * @return builder 166 */ 167 public static GeneralCategoryRecommendationPagedQueryResponseBuilder builder( 168 final GeneralCategoryRecommendationPagedQueryResponse template) { 169 return GeneralCategoryRecommendationPagedQueryResponseBuilder.of(template); 170 } 171 172 /** 173 * accessor map function 174 * @param <T> mapped type 175 * @param helper function to map the object 176 * @return mapped value 177 */ 178 default <T> T withGeneralCategoryRecommendationPagedQueryResponse( 179 Function<GeneralCategoryRecommendationPagedQueryResponse, T> helper) { 180 return helper.apply(this); 181 } 182 183 /** 184 * gives a TypeReference for usage with Jackson DataBind 185 * @return TypeReference 186 */ 187 public static com.fasterxml.jackson.core.type.TypeReference<GeneralCategoryRecommendationPagedQueryResponse> typeReference() { 188 return new com.fasterxml.jackson.core.type.TypeReference<GeneralCategoryRecommendationPagedQueryResponse>() { 189 @Override 190 public String toString() { 191 return "TypeReference<GeneralCategoryRecommendationPagedQueryResponse>"; 192 } 193 }; 194 } 195}