001 002package com.commercetools.ml.models.similar_products; 003 004import java.util.*; 005import java.util.function.Function; 006 007import io.vrap.rmf.base.client.Builder; 008import io.vrap.rmf.base.client.utils.Generated; 009 010/** 011 * SimilarProductsPagedQueryResultBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * SimilarProductsPagedQueryResult similarProductsPagedQueryResult = SimilarProductsPagedQueryResult.builder() 017 * .count(0.3) 018 * .total(0.3) 019 * .offset(0.3) 020 * .plusResults(resultsBuilder -> resultsBuilder) 021 * .meta(metaBuilder -> metaBuilder) 022 * .build() 023 * </code></pre> 024 * </div> 025 */ 026@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 027public class SimilarProductsPagedQueryResultBuilder implements Builder<SimilarProductsPagedQueryResult> { 028 029 private Long count; 030 031 private Long total; 032 033 private Long offset; 034 035 private java.util.List<com.commercetools.ml.models.similar_products.SimilarProductPair> results; 036 037 private com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMeta meta; 038 039 /** 040 * set the value to the count 041 * @param count value to be set 042 * @return Builder 043 */ 044 045 public SimilarProductsPagedQueryResultBuilder count(final Long count) { 046 this.count = count; 047 return this; 048 } 049 050 /** 051 * set the value to the total 052 * @param total value to be set 053 * @return Builder 054 */ 055 056 public SimilarProductsPagedQueryResultBuilder total(final Long total) { 057 this.total = total; 058 return this; 059 } 060 061 /** 062 * <p>Number of elements skipped.</p> 063 * @param offset value to be set 064 * @return Builder 065 */ 066 067 public SimilarProductsPagedQueryResultBuilder offset(final Long offset) { 068 this.offset = offset; 069 return this; 070 } 071 072 /** 073 * set values to the results 074 * @param results value to be set 075 * @return Builder 076 */ 077 078 public SimilarProductsPagedQueryResultBuilder results( 079 final com.commercetools.ml.models.similar_products.SimilarProductPair... results) { 080 this.results = new ArrayList<>(Arrays.asList(results)); 081 return this; 082 } 083 084 /** 085 * set value to the results 086 * @param results value to be set 087 * @return Builder 088 */ 089 090 public SimilarProductsPagedQueryResultBuilder results( 091 final java.util.List<com.commercetools.ml.models.similar_products.SimilarProductPair> results) { 092 this.results = results; 093 return this; 094 } 095 096 /** 097 * add values to the results 098 * @param results value to be set 099 * @return Builder 100 */ 101 102 public SimilarProductsPagedQueryResultBuilder plusResults( 103 final com.commercetools.ml.models.similar_products.SimilarProductPair... results) { 104 if (this.results == null) { 105 this.results = new ArrayList<>(); 106 } 107 this.results.addAll(Arrays.asList(results)); 108 return this; 109 } 110 111 /** 112 * add the value to the results using the builder function 113 * @param builder function to build the results value 114 * @return Builder 115 */ 116 117 public SimilarProductsPagedQueryResultBuilder plusResults( 118 Function<com.commercetools.ml.models.similar_products.SimilarProductPairBuilder, com.commercetools.ml.models.similar_products.SimilarProductPairBuilder> builder) { 119 if (this.results == null) { 120 this.results = new ArrayList<>(); 121 } 122 this.results.add( 123 builder.apply(com.commercetools.ml.models.similar_products.SimilarProductPairBuilder.of()).build()); 124 return this; 125 } 126 127 /** 128 * set the value to the results using the builder function 129 * @param builder function to build the results value 130 * @return Builder 131 */ 132 133 public SimilarProductsPagedQueryResultBuilder withResults( 134 Function<com.commercetools.ml.models.similar_products.SimilarProductPairBuilder, com.commercetools.ml.models.similar_products.SimilarProductPairBuilder> builder) { 135 this.results = new ArrayList<>(); 136 this.results.add( 137 builder.apply(com.commercetools.ml.models.similar_products.SimilarProductPairBuilder.of()).build()); 138 return this; 139 } 140 141 /** 142 * add the value to the results using the builder function 143 * @param builder function to build the results value 144 * @return Builder 145 */ 146 147 public SimilarProductsPagedQueryResultBuilder addResults( 148 Function<com.commercetools.ml.models.similar_products.SimilarProductPairBuilder, com.commercetools.ml.models.similar_products.SimilarProductPair> builder) { 149 return plusResults(builder.apply(com.commercetools.ml.models.similar_products.SimilarProductPairBuilder.of())); 150 } 151 152 /** 153 * set the value to the results using the builder function 154 * @param builder function to build the results value 155 * @return Builder 156 */ 157 158 public SimilarProductsPagedQueryResultBuilder setResults( 159 Function<com.commercetools.ml.models.similar_products.SimilarProductPairBuilder, com.commercetools.ml.models.similar_products.SimilarProductPair> builder) { 160 return results(builder.apply(com.commercetools.ml.models.similar_products.SimilarProductPairBuilder.of())); 161 } 162 163 /** 164 * set the value to the meta using the builder function 165 * @param builder function to build the meta value 166 * @return Builder 167 */ 168 169 public SimilarProductsPagedQueryResultBuilder meta( 170 Function<com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder, com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder> builder) { 171 this.meta = builder 172 .apply(com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder.of()) 173 .build(); 174 return this; 175 } 176 177 /** 178 * set the value to the meta using the builder function 179 * @param builder function to build the meta value 180 * @return Builder 181 */ 182 183 public SimilarProductsPagedQueryResultBuilder withMeta( 184 Function<com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder, com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMeta> builder) { 185 this.meta = builder 186 .apply(com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder.of()); 187 return this; 188 } 189 190 /** 191 * set the value to the meta 192 * @param meta value to be set 193 * @return Builder 194 */ 195 196 public SimilarProductsPagedQueryResultBuilder meta( 197 final com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMeta meta) { 198 this.meta = meta; 199 return this; 200 } 201 202 /** 203 * value of count} 204 * @return count 205 */ 206 207 public Long getCount() { 208 return this.count; 209 } 210 211 /** 212 * value of total} 213 * @return total 214 */ 215 216 public Long getTotal() { 217 return this.total; 218 } 219 220 /** 221 * <p>Number of elements skipped.</p> 222 * @return offset 223 */ 224 225 public Long getOffset() { 226 return this.offset; 227 } 228 229 /** 230 * value of results} 231 * @return results 232 */ 233 234 public java.util.List<com.commercetools.ml.models.similar_products.SimilarProductPair> getResults() { 235 return this.results; 236 } 237 238 /** 239 * value of meta} 240 * @return meta 241 */ 242 243 public com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMeta getMeta() { 244 return this.meta; 245 } 246 247 /** 248 * builds SimilarProductsPagedQueryResult with checking for non-null required values 249 * @return SimilarProductsPagedQueryResult 250 */ 251 public SimilarProductsPagedQueryResult build() { 252 Objects.requireNonNull(count, SimilarProductsPagedQueryResult.class + ": count is missing"); 253 Objects.requireNonNull(total, SimilarProductsPagedQueryResult.class + ": total is missing"); 254 Objects.requireNonNull(offset, SimilarProductsPagedQueryResult.class + ": offset is missing"); 255 Objects.requireNonNull(results, SimilarProductsPagedQueryResult.class + ": results is missing"); 256 Objects.requireNonNull(meta, SimilarProductsPagedQueryResult.class + ": meta is missing"); 257 return new SimilarProductsPagedQueryResultImpl(count, total, offset, results, meta); 258 } 259 260 /** 261 * builds SimilarProductsPagedQueryResult without checking for non-null required values 262 * @return SimilarProductsPagedQueryResult 263 */ 264 public SimilarProductsPagedQueryResult buildUnchecked() { 265 return new SimilarProductsPagedQueryResultImpl(count, total, offset, results, meta); 266 } 267 268 /** 269 * factory method for an instance of SimilarProductsPagedQueryResultBuilder 270 * @return builder 271 */ 272 public static SimilarProductsPagedQueryResultBuilder of() { 273 return new SimilarProductsPagedQueryResultBuilder(); 274 } 275 276 /** 277 * create builder for SimilarProductsPagedQueryResult instance 278 * @param template instance with prefilled values for the builder 279 * @return builder 280 */ 281 public static SimilarProductsPagedQueryResultBuilder of(final SimilarProductsPagedQueryResult template) { 282 SimilarProductsPagedQueryResultBuilder builder = new SimilarProductsPagedQueryResultBuilder(); 283 builder.count = template.getCount(); 284 builder.total = template.getTotal(); 285 builder.offset = template.getOffset(); 286 builder.results = template.getResults(); 287 builder.meta = template.getMeta(); 288 return builder; 289 } 290 291}