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