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