001 002package com.commercetools.history.models.change; 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 * RemoveFromCategoryChangeBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * RemoveFromCategoryChange removeFromCategoryChange = RemoveFromCategoryChange.builder() 017 * .change("{change}") 018 * .plusPreviousValue(previousValueBuilder -> previousValueBuilder) 019 * .plusNextValue(nextValueBuilder -> nextValueBuilder) 020 * .category(categoryBuilder -> categoryBuilder) 021 * .build() 022 * </code></pre> 023 * </div> 024 */ 025@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 026public class RemoveFromCategoryChangeBuilder implements Builder<RemoveFromCategoryChange> { 027 028 private String change; 029 030 private java.util.List<com.commercetools.history.models.common.Reference> previousValue; 031 032 private java.util.List<com.commercetools.history.models.common.Reference> nextValue; 033 034 private com.commercetools.history.models.common.Reference category; 035 036 /** 037 * set the value to the change 038 * @param change value to be set 039 * @return Builder 040 */ 041 042 public RemoveFromCategoryChangeBuilder change(final String change) { 043 this.change = change; 044 return this; 045 } 046 047 /** 048 * <p>Value before the change.</p> 049 * @param previousValue value to be set 050 * @return Builder 051 */ 052 053 public RemoveFromCategoryChangeBuilder previousValue( 054 final com.commercetools.history.models.common.Reference... previousValue) { 055 this.previousValue = new ArrayList<>(Arrays.asList(previousValue)); 056 return this; 057 } 058 059 /** 060 * <p>Value before the change.</p> 061 * @param previousValue value to be set 062 * @return Builder 063 */ 064 065 public RemoveFromCategoryChangeBuilder previousValue( 066 final java.util.List<com.commercetools.history.models.common.Reference> previousValue) { 067 this.previousValue = previousValue; 068 return this; 069 } 070 071 /** 072 * <p>Value before the change.</p> 073 * @param previousValue value to be set 074 * @return Builder 075 */ 076 077 public RemoveFromCategoryChangeBuilder plusPreviousValue( 078 final com.commercetools.history.models.common.Reference... previousValue) { 079 if (this.previousValue == null) { 080 this.previousValue = new ArrayList<>(); 081 } 082 this.previousValue.addAll(Arrays.asList(previousValue)); 083 return this; 084 } 085 086 /** 087 * <p>Value before the change.</p> 088 * @param builder function to build the previousValue value 089 * @return Builder 090 */ 091 092 public RemoveFromCategoryChangeBuilder plusPreviousValue( 093 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 094 if (this.previousValue == null) { 095 this.previousValue = new ArrayList<>(); 096 } 097 this.previousValue.add(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build()); 098 return this; 099 } 100 101 /** 102 * <p>Value before the change.</p> 103 * @param builder function to build the previousValue value 104 * @return Builder 105 */ 106 107 public RemoveFromCategoryChangeBuilder withPreviousValue( 108 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 109 this.previousValue = new ArrayList<>(); 110 this.previousValue.add(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build()); 111 return this; 112 } 113 114 /** 115 * <p>Value before the change.</p> 116 * @param builder function to build the previousValue value 117 * @return Builder 118 */ 119 120 public RemoveFromCategoryChangeBuilder addPreviousValue( 121 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 122 return plusPreviousValue(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of())); 123 } 124 125 /** 126 * <p>Value before the change.</p> 127 * @param builder function to build the previousValue value 128 * @return Builder 129 */ 130 131 public RemoveFromCategoryChangeBuilder setPreviousValue( 132 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 133 return previousValue(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of())); 134 } 135 136 /** 137 * <p>Value after the change.</p> 138 * @param nextValue value to be set 139 * @return Builder 140 */ 141 142 public RemoveFromCategoryChangeBuilder nextValue( 143 final com.commercetools.history.models.common.Reference... nextValue) { 144 this.nextValue = new ArrayList<>(Arrays.asList(nextValue)); 145 return this; 146 } 147 148 /** 149 * <p>Value after the change.</p> 150 * @param nextValue value to be set 151 * @return Builder 152 */ 153 154 public RemoveFromCategoryChangeBuilder nextValue( 155 final java.util.List<com.commercetools.history.models.common.Reference> nextValue) { 156 this.nextValue = nextValue; 157 return this; 158 } 159 160 /** 161 * <p>Value after the change.</p> 162 * @param nextValue value to be set 163 * @return Builder 164 */ 165 166 public RemoveFromCategoryChangeBuilder plusNextValue( 167 final com.commercetools.history.models.common.Reference... nextValue) { 168 if (this.nextValue == null) { 169 this.nextValue = new ArrayList<>(); 170 } 171 this.nextValue.addAll(Arrays.asList(nextValue)); 172 return this; 173 } 174 175 /** 176 * <p>Value after the change.</p> 177 * @param builder function to build the nextValue value 178 * @return Builder 179 */ 180 181 public RemoveFromCategoryChangeBuilder plusNextValue( 182 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 183 if (this.nextValue == null) { 184 this.nextValue = new ArrayList<>(); 185 } 186 this.nextValue.add(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build()); 187 return this; 188 } 189 190 /** 191 * <p>Value after the change.</p> 192 * @param builder function to build the nextValue value 193 * @return Builder 194 */ 195 196 public RemoveFromCategoryChangeBuilder withNextValue( 197 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 198 this.nextValue = new ArrayList<>(); 199 this.nextValue.add(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build()); 200 return this; 201 } 202 203 /** 204 * <p>Value after the change.</p> 205 * @param builder function to build the nextValue value 206 * @return Builder 207 */ 208 209 public RemoveFromCategoryChangeBuilder addNextValue( 210 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 211 return plusNextValue(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of())); 212 } 213 214 /** 215 * <p>Value after the change.</p> 216 * @param builder function to build the nextValue value 217 * @return Builder 218 */ 219 220 public RemoveFromCategoryChangeBuilder setNextValue( 221 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 222 return nextValue(builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of())); 223 } 224 225 /** 226 * <p>Category from which the Product was removed.</p> 227 * @param builder function to build the category value 228 * @return Builder 229 */ 230 231 public RemoveFromCategoryChangeBuilder category( 232 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 233 this.category = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build(); 234 return this; 235 } 236 237 /** 238 * <p>Category from which the Product was removed.</p> 239 * @param builder function to build the category value 240 * @return Builder 241 */ 242 243 public RemoveFromCategoryChangeBuilder withCategory( 244 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 245 this.category = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()); 246 return this; 247 } 248 249 /** 250 * <p>Category from which the Product was removed.</p> 251 * @param category value to be set 252 * @return Builder 253 */ 254 255 public RemoveFromCategoryChangeBuilder category(final com.commercetools.history.models.common.Reference category) { 256 this.category = category; 257 return this; 258 } 259 260 /** 261 * value of change} 262 * @return change 263 */ 264 265 public String getChange() { 266 return this.change; 267 } 268 269 /** 270 * <p>Value before the change.</p> 271 * @return previousValue 272 */ 273 274 public java.util.List<com.commercetools.history.models.common.Reference> getPreviousValue() { 275 return this.previousValue; 276 } 277 278 /** 279 * <p>Value after the change.</p> 280 * @return nextValue 281 */ 282 283 public java.util.List<com.commercetools.history.models.common.Reference> getNextValue() { 284 return this.nextValue; 285 } 286 287 /** 288 * <p>Category from which the Product was removed.</p> 289 * @return category 290 */ 291 292 public com.commercetools.history.models.common.Reference getCategory() { 293 return this.category; 294 } 295 296 /** 297 * builds RemoveFromCategoryChange with checking for non-null required values 298 * @return RemoveFromCategoryChange 299 */ 300 public RemoveFromCategoryChange build() { 301 Objects.requireNonNull(change, RemoveFromCategoryChange.class + ": change is missing"); 302 Objects.requireNonNull(previousValue, RemoveFromCategoryChange.class + ": previousValue is missing"); 303 Objects.requireNonNull(nextValue, RemoveFromCategoryChange.class + ": nextValue is missing"); 304 Objects.requireNonNull(category, RemoveFromCategoryChange.class + ": category is missing"); 305 return new RemoveFromCategoryChangeImpl(change, previousValue, nextValue, category); 306 } 307 308 /** 309 * builds RemoveFromCategoryChange without checking for non-null required values 310 * @return RemoveFromCategoryChange 311 */ 312 public RemoveFromCategoryChange buildUnchecked() { 313 return new RemoveFromCategoryChangeImpl(change, previousValue, nextValue, category); 314 } 315 316 /** 317 * factory method for an instance of RemoveFromCategoryChangeBuilder 318 * @return builder 319 */ 320 public static RemoveFromCategoryChangeBuilder of() { 321 return new RemoveFromCategoryChangeBuilder(); 322 } 323 324 /** 325 * create builder for RemoveFromCategoryChange instance 326 * @param template instance with prefilled values for the builder 327 * @return builder 328 */ 329 public static RemoveFromCategoryChangeBuilder of(final RemoveFromCategoryChange template) { 330 RemoveFromCategoryChangeBuilder builder = new RemoveFromCategoryChangeBuilder(); 331 builder.change = template.getChange(); 332 builder.previousValue = template.getPreviousValue(); 333 builder.nextValue = template.getNextValue(); 334 builder.category = template.getCategory(); 335 return builder; 336 } 337 338}