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}