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}