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