001 002package com.commercetools.api.models.message; 003 004import java.util.*; 005import java.util.function.Function; 006 007import javax.annotation.Nullable; 008 009import io.vrap.rmf.base.client.Builder; 010import io.vrap.rmf.base.client.utils.Generated; 011 012/** 013 * StoreCountriesChangedMessageBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * StoreCountriesChangedMessage storeCountriesChangedMessage = StoreCountriesChangedMessage.builder() 019 * .id("{id}") 020 * .version(0.3) 021 * .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 022 * .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z")) 023 * .sequenceNumber(0.3) 024 * .resource(resourceBuilder -> resourceBuilder) 025 * .resourceVersion(0.3) 026 * .build() 027 * </code></pre> 028 * </div> 029 */ 030@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 031public class StoreCountriesChangedMessageBuilder implements Builder<StoreCountriesChangedMessage> { 032 033 private String id; 034 035 private Long version; 036 037 private java.time.ZonedDateTime createdAt; 038 039 private java.time.ZonedDateTime lastModifiedAt; 040 041 @Nullable 042 private com.commercetools.api.models.common.LastModifiedBy lastModifiedBy; 043 044 @Nullable 045 private com.commercetools.api.models.common.CreatedBy createdBy; 046 047 private Long sequenceNumber; 048 049 private com.commercetools.api.models.common.Reference resource; 050 051 private Long resourceVersion; 052 053 @Nullable 054 private com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers; 055 056 @Nullable 057 private java.util.List<com.commercetools.api.models.store_country.StoreCountry> addedCountries; 058 059 @Nullable 060 private java.util.List<com.commercetools.api.models.store_country.StoreCountry> removedCountries; 061 062 /** 063 * <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p> 064 * @param id value to be set 065 * @return Builder 066 */ 067 068 public StoreCountriesChangedMessageBuilder id(final String id) { 069 this.id = id; 070 return this; 071 } 072 073 /** 074 * <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p> 075 * @param version value to be set 076 * @return Builder 077 */ 078 079 public StoreCountriesChangedMessageBuilder version(final Long version) { 080 this.version = version; 081 return this; 082 } 083 084 /** 085 * <p>Date and time (UTC) the Message was generated.</p> 086 * @param createdAt value to be set 087 * @return Builder 088 */ 089 090 public StoreCountriesChangedMessageBuilder createdAt(final java.time.ZonedDateTime createdAt) { 091 this.createdAt = createdAt; 092 return this; 093 } 094 095 /** 096 * <p>Value of <code>createdAt</code>.</p> 097 * @param lastModifiedAt value to be set 098 * @return Builder 099 */ 100 101 public StoreCountriesChangedMessageBuilder lastModifiedAt(final java.time.ZonedDateTime lastModifiedAt) { 102 this.lastModifiedAt = lastModifiedAt; 103 return this; 104 } 105 106 /** 107 * <p>Value of <code>createdBy</code>.</p> 108 * @param builder function to build the lastModifiedBy value 109 * @return Builder 110 */ 111 112 public StoreCountriesChangedMessageBuilder lastModifiedBy( 113 Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedByBuilder> builder) { 114 this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()).build(); 115 return this; 116 } 117 118 /** 119 * <p>Value of <code>createdBy</code>.</p> 120 * @param builder function to build the lastModifiedBy value 121 * @return Builder 122 */ 123 124 public StoreCountriesChangedMessageBuilder withLastModifiedBy( 125 Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedBy> builder) { 126 this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()); 127 return this; 128 } 129 130 /** 131 * <p>Value of <code>createdBy</code>.</p> 132 * @param lastModifiedBy value to be set 133 * @return Builder 134 */ 135 136 public StoreCountriesChangedMessageBuilder lastModifiedBy( 137 @Nullable final com.commercetools.api.models.common.LastModifiedBy lastModifiedBy) { 138 this.lastModifiedBy = lastModifiedBy; 139 return this; 140 } 141 142 /** 143 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 144 * @param builder function to build the createdBy value 145 * @return Builder 146 */ 147 148 public StoreCountriesChangedMessageBuilder createdBy( 149 Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedByBuilder> builder) { 150 this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()).build(); 151 return this; 152 } 153 154 /** 155 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 156 * @param builder function to build the createdBy value 157 * @return Builder 158 */ 159 160 public StoreCountriesChangedMessageBuilder withCreatedBy( 161 Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedBy> builder) { 162 this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()); 163 return this; 164 } 165 166 /** 167 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 168 * @param createdBy value to be set 169 * @return Builder 170 */ 171 172 public StoreCountriesChangedMessageBuilder createdBy( 173 @Nullable final com.commercetools.api.models.common.CreatedBy createdBy) { 174 this.createdBy = createdBy; 175 return this; 176 } 177 178 /** 179 * <p>Message number in relation to other Messages for a given resource. The <code>sequenceNumber</code> of the next Message for the resource is the successor of the <code>sequenceNumber</code> of the current Message. Meaning, the <code>sequenceNumber</code> of the next Message equals the <code>sequenceNumber</code> of the current Message + 1. <code>sequenceNumber</code> can be used to ensure that Messages are processed in the correct order for a particular resource.</p> 180 * @param sequenceNumber value to be set 181 * @return Builder 182 */ 183 184 public StoreCountriesChangedMessageBuilder sequenceNumber(final Long sequenceNumber) { 185 this.sequenceNumber = sequenceNumber; 186 return this; 187 } 188 189 /** 190 * <p>Reference to the resource on which the change or action was performed.</p> 191 * @param resource value to be set 192 * @return Builder 193 */ 194 195 public StoreCountriesChangedMessageBuilder resource(final com.commercetools.api.models.common.Reference resource) { 196 this.resource = resource; 197 return this; 198 } 199 200 /** 201 * <p>Reference to the resource on which the change or action was performed.</p> 202 * @param builder function to build the resource value 203 * @return Builder 204 */ 205 206 public StoreCountriesChangedMessageBuilder resource( 207 Function<com.commercetools.api.models.common.ReferenceBuilder, Builder<? extends com.commercetools.api.models.common.Reference>> builder) { 208 this.resource = builder.apply(com.commercetools.api.models.common.ReferenceBuilder.of()).build(); 209 return this; 210 } 211 212 /** 213 * <p>Version of the resource on which the change or action was performed.</p> 214 * @param resourceVersion value to be set 215 * @return Builder 216 */ 217 218 public StoreCountriesChangedMessageBuilder resourceVersion(final Long resourceVersion) { 219 this.resourceVersion = resourceVersion; 220 return this; 221 } 222 223 /** 224 * <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p> 225 * @param builder function to build the resourceUserProvidedIdentifiers value 226 * @return Builder 227 */ 228 229 public StoreCountriesChangedMessageBuilder resourceUserProvidedIdentifiers( 230 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiersBuilder> builder) { 231 this.resourceUserProvidedIdentifiers = builder 232 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()) 233 .build(); 234 return this; 235 } 236 237 /** 238 * <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p> 239 * @param builder function to build the resourceUserProvidedIdentifiers value 240 * @return Builder 241 */ 242 243 public StoreCountriesChangedMessageBuilder withResourceUserProvidedIdentifiers( 244 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiers> builder) { 245 this.resourceUserProvidedIdentifiers = builder 246 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()); 247 return this; 248 } 249 250 /** 251 * <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p> 252 * @param resourceUserProvidedIdentifiers value to be set 253 * @return Builder 254 */ 255 256 public StoreCountriesChangedMessageBuilder resourceUserProvidedIdentifiers( 257 @Nullable final com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers) { 258 this.resourceUserProvidedIdentifiers = resourceUserProvidedIdentifiers; 259 return this; 260 } 261 262 /** 263 * <p>Countries added to the Store.</p> 264 * @param addedCountries value to be set 265 * @return Builder 266 */ 267 268 public StoreCountriesChangedMessageBuilder addedCountries( 269 @Nullable final com.commercetools.api.models.store_country.StoreCountry... addedCountries) { 270 this.addedCountries = new ArrayList<>(Arrays.asList(addedCountries)); 271 return this; 272 } 273 274 /** 275 * <p>Countries added to the Store.</p> 276 * @param addedCountries value to be set 277 * @return Builder 278 */ 279 280 public StoreCountriesChangedMessageBuilder addedCountries( 281 @Nullable final java.util.List<com.commercetools.api.models.store_country.StoreCountry> addedCountries) { 282 this.addedCountries = addedCountries; 283 return this; 284 } 285 286 /** 287 * <p>Countries added to the Store.</p> 288 * @param addedCountries value to be set 289 * @return Builder 290 */ 291 292 public StoreCountriesChangedMessageBuilder plusAddedCountries( 293 @Nullable final com.commercetools.api.models.store_country.StoreCountry... addedCountries) { 294 if (this.addedCountries == null) { 295 this.addedCountries = new ArrayList<>(); 296 } 297 this.addedCountries.addAll(Arrays.asList(addedCountries)); 298 return this; 299 } 300 301 /** 302 * <p>Countries added to the Store.</p> 303 * @param builder function to build the addedCountries value 304 * @return Builder 305 */ 306 307 public StoreCountriesChangedMessageBuilder plusAddedCountries( 308 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountryBuilder> builder) { 309 if (this.addedCountries == null) { 310 this.addedCountries = new ArrayList<>(); 311 } 312 this.addedCountries 313 .add(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of()).build()); 314 return this; 315 } 316 317 /** 318 * <p>Countries added to the Store.</p> 319 * @param builder function to build the addedCountries value 320 * @return Builder 321 */ 322 323 public StoreCountriesChangedMessageBuilder withAddedCountries( 324 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountryBuilder> builder) { 325 this.addedCountries = new ArrayList<>(); 326 this.addedCountries 327 .add(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of()).build()); 328 return this; 329 } 330 331 /** 332 * <p>Countries added to the Store.</p> 333 * @param builder function to build the addedCountries value 334 * @return Builder 335 */ 336 337 public StoreCountriesChangedMessageBuilder addAddedCountries( 338 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountry> builder) { 339 return plusAddedCountries(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of())); 340 } 341 342 /** 343 * <p>Countries added to the Store.</p> 344 * @param builder function to build the addedCountries value 345 * @return Builder 346 */ 347 348 public StoreCountriesChangedMessageBuilder setAddedCountries( 349 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountry> builder) { 350 return addedCountries(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of())); 351 } 352 353 /** 354 * <p>Countries removed from the Store.</p> 355 * @param removedCountries value to be set 356 * @return Builder 357 */ 358 359 public StoreCountriesChangedMessageBuilder removedCountries( 360 @Nullable final com.commercetools.api.models.store_country.StoreCountry... removedCountries) { 361 this.removedCountries = new ArrayList<>(Arrays.asList(removedCountries)); 362 return this; 363 } 364 365 /** 366 * <p>Countries removed from the Store.</p> 367 * @param removedCountries value to be set 368 * @return Builder 369 */ 370 371 public StoreCountriesChangedMessageBuilder removedCountries( 372 @Nullable final java.util.List<com.commercetools.api.models.store_country.StoreCountry> removedCountries) { 373 this.removedCountries = removedCountries; 374 return this; 375 } 376 377 /** 378 * <p>Countries removed from the Store.</p> 379 * @param removedCountries value to be set 380 * @return Builder 381 */ 382 383 public StoreCountriesChangedMessageBuilder plusRemovedCountries( 384 @Nullable final com.commercetools.api.models.store_country.StoreCountry... removedCountries) { 385 if (this.removedCountries == null) { 386 this.removedCountries = new ArrayList<>(); 387 } 388 this.removedCountries.addAll(Arrays.asList(removedCountries)); 389 return this; 390 } 391 392 /** 393 * <p>Countries removed from the Store.</p> 394 * @param builder function to build the removedCountries value 395 * @return Builder 396 */ 397 398 public StoreCountriesChangedMessageBuilder plusRemovedCountries( 399 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountryBuilder> builder) { 400 if (this.removedCountries == null) { 401 this.removedCountries = new ArrayList<>(); 402 } 403 this.removedCountries 404 .add(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of()).build()); 405 return this; 406 } 407 408 /** 409 * <p>Countries removed from the Store.</p> 410 * @param builder function to build the removedCountries value 411 * @return Builder 412 */ 413 414 public StoreCountriesChangedMessageBuilder withRemovedCountries( 415 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountryBuilder> builder) { 416 this.removedCountries = new ArrayList<>(); 417 this.removedCountries 418 .add(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of()).build()); 419 return this; 420 } 421 422 /** 423 * <p>Countries removed from the Store.</p> 424 * @param builder function to build the removedCountries value 425 * @return Builder 426 */ 427 428 public StoreCountriesChangedMessageBuilder addRemovedCountries( 429 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountry> builder) { 430 return plusRemovedCountries(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of())); 431 } 432 433 /** 434 * <p>Countries removed from the Store.</p> 435 * @param builder function to build the removedCountries value 436 * @return Builder 437 */ 438 439 public StoreCountriesChangedMessageBuilder setRemovedCountries( 440 Function<com.commercetools.api.models.store_country.StoreCountryBuilder, com.commercetools.api.models.store_country.StoreCountry> builder) { 441 return removedCountries(builder.apply(com.commercetools.api.models.store_country.StoreCountryBuilder.of())); 442 } 443 444 /** 445 * <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p> 446 * @return id 447 */ 448 449 public String getId() { 450 return this.id; 451 } 452 453 /** 454 * <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p> 455 * @return version 456 */ 457 458 public Long getVersion() { 459 return this.version; 460 } 461 462 /** 463 * <p>Date and time (UTC) the Message was generated.</p> 464 * @return createdAt 465 */ 466 467 public java.time.ZonedDateTime getCreatedAt() { 468 return this.createdAt; 469 } 470 471 /** 472 * <p>Value of <code>createdAt</code>.</p> 473 * @return lastModifiedAt 474 */ 475 476 public java.time.ZonedDateTime getLastModifiedAt() { 477 return this.lastModifiedAt; 478 } 479 480 /** 481 * <p>Value of <code>createdBy</code>.</p> 482 * @return lastModifiedBy 483 */ 484 485 @Nullable 486 public com.commercetools.api.models.common.LastModifiedBy getLastModifiedBy() { 487 return this.lastModifiedBy; 488 } 489 490 /** 491 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 492 * @return createdBy 493 */ 494 495 @Nullable 496 public com.commercetools.api.models.common.CreatedBy getCreatedBy() { 497 return this.createdBy; 498 } 499 500 /** 501 * <p>Message number in relation to other Messages for a given resource. The <code>sequenceNumber</code> of the next Message for the resource is the successor of the <code>sequenceNumber</code> of the current Message. Meaning, the <code>sequenceNumber</code> of the next Message equals the <code>sequenceNumber</code> of the current Message + 1. <code>sequenceNumber</code> can be used to ensure that Messages are processed in the correct order for a particular resource.</p> 502 * @return sequenceNumber 503 */ 504 505 public Long getSequenceNumber() { 506 return this.sequenceNumber; 507 } 508 509 /** 510 * <p>Reference to the resource on which the change or action was performed.</p> 511 * @return resource 512 */ 513 514 public com.commercetools.api.models.common.Reference getResource() { 515 return this.resource; 516 } 517 518 /** 519 * <p>Version of the resource on which the change or action was performed.</p> 520 * @return resourceVersion 521 */ 522 523 public Long getResourceVersion() { 524 return this.resourceVersion; 525 } 526 527 /** 528 * <p>User-provided identifiers of the resource, such as <code>key</code> or <code>externalId</code>. Only present if the resource has such identifiers.</p> 529 * @return resourceUserProvidedIdentifiers 530 */ 531 532 @Nullable 533 public com.commercetools.api.models.message.UserProvidedIdentifiers getResourceUserProvidedIdentifiers() { 534 return this.resourceUserProvidedIdentifiers; 535 } 536 537 /** 538 * <p>Countries added to the Store.</p> 539 * @return addedCountries 540 */ 541 542 @Nullable 543 public java.util.List<com.commercetools.api.models.store_country.StoreCountry> getAddedCountries() { 544 return this.addedCountries; 545 } 546 547 /** 548 * <p>Countries removed from the Store.</p> 549 * @return removedCountries 550 */ 551 552 @Nullable 553 public java.util.List<com.commercetools.api.models.store_country.StoreCountry> getRemovedCountries() { 554 return this.removedCountries; 555 } 556 557 /** 558 * builds StoreCountriesChangedMessage with checking for non-null required values 559 * @return StoreCountriesChangedMessage 560 */ 561 public StoreCountriesChangedMessage build() { 562 Objects.requireNonNull(id, StoreCountriesChangedMessage.class + ": id is missing"); 563 Objects.requireNonNull(version, StoreCountriesChangedMessage.class + ": version is missing"); 564 Objects.requireNonNull(createdAt, StoreCountriesChangedMessage.class + ": createdAt is missing"); 565 Objects.requireNonNull(lastModifiedAt, StoreCountriesChangedMessage.class + ": lastModifiedAt is missing"); 566 Objects.requireNonNull(sequenceNumber, StoreCountriesChangedMessage.class + ": sequenceNumber is missing"); 567 Objects.requireNonNull(resource, StoreCountriesChangedMessage.class + ": resource is missing"); 568 Objects.requireNonNull(resourceVersion, StoreCountriesChangedMessage.class + ": resourceVersion is missing"); 569 return new StoreCountriesChangedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy, 570 sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers, addedCountries, 571 removedCountries); 572 } 573 574 /** 575 * builds StoreCountriesChangedMessage without checking for non-null required values 576 * @return StoreCountriesChangedMessage 577 */ 578 public StoreCountriesChangedMessage buildUnchecked() { 579 return new StoreCountriesChangedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy, 580 sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers, addedCountries, 581 removedCountries); 582 } 583 584 /** 585 * factory method for an instance of StoreCountriesChangedMessageBuilder 586 * @return builder 587 */ 588 public static StoreCountriesChangedMessageBuilder of() { 589 return new StoreCountriesChangedMessageBuilder(); 590 } 591 592 /** 593 * create builder for StoreCountriesChangedMessage instance 594 * @param template instance with prefilled values for the builder 595 * @return builder 596 */ 597 public static StoreCountriesChangedMessageBuilder of(final StoreCountriesChangedMessage template) { 598 StoreCountriesChangedMessageBuilder builder = new StoreCountriesChangedMessageBuilder(); 599 builder.id = template.getId(); 600 builder.version = template.getVersion(); 601 builder.createdAt = template.getCreatedAt(); 602 builder.lastModifiedAt = template.getLastModifiedAt(); 603 builder.lastModifiedBy = template.getLastModifiedBy(); 604 builder.createdBy = template.getCreatedBy(); 605 builder.sequenceNumber = template.getSequenceNumber(); 606 builder.resource = template.getResource(); 607 builder.resourceVersion = template.getResourceVersion(); 608 builder.resourceUserProvidedIdentifiers = template.getResourceUserProvidedIdentifiers(); 609 builder.addedCountries = template.getAddedCountries(); 610 builder.removedCountries = template.getRemovedCountries(); 611 return builder; 612 } 613 614}