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 * 041 */ 042 043 public SimilarProductsPagedQueryResultBuilder count(final Long count) { 044 this.count = count; 045 return this; 046 } 047 048 /** 049 * 050 */ 051 052 public SimilarProductsPagedQueryResultBuilder total(final Long total) { 053 this.total = total; 054 return this; 055 } 056 057 /** 058 * <p>Number of elements skipped.</p> 059 */ 060 061 public SimilarProductsPagedQueryResultBuilder offset(final Long offset) { 062 this.offset = offset; 063 return this; 064 } 065 066 /** 067 * 068 */ 069 070 public SimilarProductsPagedQueryResultBuilder results( 071 final com.commercetools.ml.models.similar_products.SimilarProductPair... results) { 072 this.results = new ArrayList<>(Arrays.asList(results)); 073 return this; 074 } 075 076 /** 077 * 078 */ 079 080 public SimilarProductsPagedQueryResultBuilder results( 081 final java.util.List<com.commercetools.ml.models.similar_products.SimilarProductPair> results) { 082 this.results = results; 083 return this; 084 } 085 086 /** 087 * 088 */ 089 090 public SimilarProductsPagedQueryResultBuilder plusResults( 091 final com.commercetools.ml.models.similar_products.SimilarProductPair... results) { 092 if (this.results == null) { 093 this.results = new ArrayList<>(); 094 } 095 this.results.addAll(Arrays.asList(results)); 096 return this; 097 } 098 099 /** 100 * 101 */ 102 103 public SimilarProductsPagedQueryResultBuilder plusResults( 104 Function<com.commercetools.ml.models.similar_products.SimilarProductPairBuilder, com.commercetools.ml.models.similar_products.SimilarProductPairBuilder> builder) { 105 if (this.results == null) { 106 this.results = new ArrayList<>(); 107 } 108 this.results.add( 109 builder.apply(com.commercetools.ml.models.similar_products.SimilarProductPairBuilder.of()).build()); 110 return this; 111 } 112 113 /** 114 * 115 */ 116 117 public SimilarProductsPagedQueryResultBuilder withResults( 118 Function<com.commercetools.ml.models.similar_products.SimilarProductPairBuilder, com.commercetools.ml.models.similar_products.SimilarProductPairBuilder> builder) { 119 this.results = new ArrayList<>(); 120 this.results.add( 121 builder.apply(com.commercetools.ml.models.similar_products.SimilarProductPairBuilder.of()).build()); 122 return this; 123 } 124 125 /** 126 * 127 */ 128 129 public SimilarProductsPagedQueryResultBuilder meta( 130 Function<com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder, com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder> builder) { 131 this.meta = builder 132 .apply(com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMetaBuilder.of()) 133 .build(); 134 return this; 135 } 136 137 /** 138 * 139 */ 140 141 public SimilarProductsPagedQueryResultBuilder meta( 142 final com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMeta meta) { 143 this.meta = meta; 144 return this; 145 } 146 147 public Long getCount() { 148 return this.count; 149 } 150 151 public Long getTotal() { 152 return this.total; 153 } 154 155 public Long getOffset() { 156 return this.offset; 157 } 158 159 public java.util.List<com.commercetools.ml.models.similar_products.SimilarProductPair> getResults() { 160 return this.results; 161 } 162 163 public com.commercetools.ml.models.similar_products.SimilarProductSearchRequestMeta getMeta() { 164 return this.meta; 165 } 166 167 public SimilarProductsPagedQueryResult build() { 168 Objects.requireNonNull(count, SimilarProductsPagedQueryResult.class + ": count is missing"); 169 Objects.requireNonNull(total, SimilarProductsPagedQueryResult.class + ": total is missing"); 170 Objects.requireNonNull(offset, SimilarProductsPagedQueryResult.class + ": offset is missing"); 171 Objects.requireNonNull(results, SimilarProductsPagedQueryResult.class + ": results is missing"); 172 Objects.requireNonNull(meta, SimilarProductsPagedQueryResult.class + ": meta is missing"); 173 return new SimilarProductsPagedQueryResultImpl(count, total, offset, results, meta); 174 } 175 176 /** 177 * builds SimilarProductsPagedQueryResult without checking for non null required values 178 */ 179 public SimilarProductsPagedQueryResult buildUnchecked() { 180 return new SimilarProductsPagedQueryResultImpl(count, total, offset, results, meta); 181 } 182 183 public static SimilarProductsPagedQueryResultBuilder of() { 184 return new SimilarProductsPagedQueryResultBuilder(); 185 } 186 187 public static SimilarProductsPagedQueryResultBuilder of(final SimilarProductsPagedQueryResult template) { 188 SimilarProductsPagedQueryResultBuilder builder = new SimilarProductsPagedQueryResultBuilder(); 189 builder.count = template.getCount(); 190 builder.total = template.getTotal(); 191 builder.offset = template.getOffset(); 192 builder.results = template.getResults(); 193 builder.meta = template.getMeta(); 194 return builder; 195 } 196 197}