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 * StagedQuoteDeletedMessageBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * StagedQuoteDeletedMessage stagedQuoteDeletedMessage = StagedQuoteDeletedMessage.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 StagedQuoteDeletedMessageBuilder implements Builder<StagedQuoteDeletedMessage> { 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 /** 057 * <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p> 058 * @param id value to be set 059 * @return Builder 060 */ 061 062 public StagedQuoteDeletedMessageBuilder id(final String id) { 063 this.id = id; 064 return this; 065 } 066 067 /** 068 * <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p> 069 * @param version value to be set 070 * @return Builder 071 */ 072 073 public StagedQuoteDeletedMessageBuilder version(final Long version) { 074 this.version = version; 075 return this; 076 } 077 078 /** 079 * <p>Date and time (UTC) the Message was generated.</p> 080 * @param createdAt value to be set 081 * @return Builder 082 */ 083 084 public StagedQuoteDeletedMessageBuilder createdAt(final java.time.ZonedDateTime createdAt) { 085 this.createdAt = createdAt; 086 return this; 087 } 088 089 /** 090 * <p>Value of <code>createdAt</code>.</p> 091 * @param lastModifiedAt value to be set 092 * @return Builder 093 */ 094 095 public StagedQuoteDeletedMessageBuilder lastModifiedAt(final java.time.ZonedDateTime lastModifiedAt) { 096 this.lastModifiedAt = lastModifiedAt; 097 return this; 098 } 099 100 /** 101 * <p>Value of <code>createdBy</code>.</p> 102 * @param builder function to build the lastModifiedBy value 103 * @return Builder 104 */ 105 106 public StagedQuoteDeletedMessageBuilder lastModifiedBy( 107 Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedByBuilder> builder) { 108 this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()).build(); 109 return this; 110 } 111 112 /** 113 * <p>Value of <code>createdBy</code>.</p> 114 * @param builder function to build the lastModifiedBy value 115 * @return Builder 116 */ 117 118 public StagedQuoteDeletedMessageBuilder withLastModifiedBy( 119 Function<com.commercetools.api.models.common.LastModifiedByBuilder, com.commercetools.api.models.common.LastModifiedBy> builder) { 120 this.lastModifiedBy = builder.apply(com.commercetools.api.models.common.LastModifiedByBuilder.of()); 121 return this; 122 } 123 124 /** 125 * <p>Value of <code>createdBy</code>.</p> 126 * @param lastModifiedBy value to be set 127 * @return Builder 128 */ 129 130 public StagedQuoteDeletedMessageBuilder lastModifiedBy( 131 @Nullable final com.commercetools.api.models.common.LastModifiedBy lastModifiedBy) { 132 this.lastModifiedBy = lastModifiedBy; 133 return this; 134 } 135 136 /** 137 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 138 * @param builder function to build the createdBy value 139 * @return Builder 140 */ 141 142 public StagedQuoteDeletedMessageBuilder createdBy( 143 Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedByBuilder> builder) { 144 this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()).build(); 145 return this; 146 } 147 148 /** 149 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 150 * @param builder function to build the createdBy value 151 * @return Builder 152 */ 153 154 public StagedQuoteDeletedMessageBuilder withCreatedBy( 155 Function<com.commercetools.api.models.common.CreatedByBuilder, com.commercetools.api.models.common.CreatedBy> builder) { 156 this.createdBy = builder.apply(com.commercetools.api.models.common.CreatedByBuilder.of()); 157 return this; 158 } 159 160 /** 161 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 162 * @param createdBy value to be set 163 * @return Builder 164 */ 165 166 public StagedQuoteDeletedMessageBuilder createdBy( 167 @Nullable final com.commercetools.api.models.common.CreatedBy createdBy) { 168 this.createdBy = createdBy; 169 return this; 170 } 171 172 /** 173 * <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> 174 * @param sequenceNumber value to be set 175 * @return Builder 176 */ 177 178 public StagedQuoteDeletedMessageBuilder sequenceNumber(final Long sequenceNumber) { 179 this.sequenceNumber = sequenceNumber; 180 return this; 181 } 182 183 /** 184 * <p>Reference to the resource on which the change or action was performed.</p> 185 * @param resource value to be set 186 * @return Builder 187 */ 188 189 public StagedQuoteDeletedMessageBuilder resource(final com.commercetools.api.models.common.Reference resource) { 190 this.resource = resource; 191 return this; 192 } 193 194 /** 195 * <p>Reference to the resource on which the change or action was performed.</p> 196 * @param builder function to build the resource value 197 * @return Builder 198 */ 199 200 public StagedQuoteDeletedMessageBuilder resource( 201 Function<com.commercetools.api.models.common.ReferenceBuilder, Builder<? extends com.commercetools.api.models.common.Reference>> builder) { 202 this.resource = builder.apply(com.commercetools.api.models.common.ReferenceBuilder.of()).build(); 203 return this; 204 } 205 206 /** 207 * <p>Version of the resource on which the change or action was performed.</p> 208 * @param resourceVersion value to be set 209 * @return Builder 210 */ 211 212 public StagedQuoteDeletedMessageBuilder resourceVersion(final Long resourceVersion) { 213 this.resourceVersion = resourceVersion; 214 return this; 215 } 216 217 /** 218 * <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> 219 * @param builder function to build the resourceUserProvidedIdentifiers value 220 * @return Builder 221 */ 222 223 public StagedQuoteDeletedMessageBuilder resourceUserProvidedIdentifiers( 224 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiersBuilder> builder) { 225 this.resourceUserProvidedIdentifiers = builder 226 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()) 227 .build(); 228 return this; 229 } 230 231 /** 232 * <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> 233 * @param builder function to build the resourceUserProvidedIdentifiers value 234 * @return Builder 235 */ 236 237 public StagedQuoteDeletedMessageBuilder withResourceUserProvidedIdentifiers( 238 Function<com.commercetools.api.models.message.UserProvidedIdentifiersBuilder, com.commercetools.api.models.message.UserProvidedIdentifiers> builder) { 239 this.resourceUserProvidedIdentifiers = builder 240 .apply(com.commercetools.api.models.message.UserProvidedIdentifiersBuilder.of()); 241 return this; 242 } 243 244 /** 245 * <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> 246 * @param resourceUserProvidedIdentifiers value to be set 247 * @return Builder 248 */ 249 250 public StagedQuoteDeletedMessageBuilder resourceUserProvidedIdentifiers( 251 @Nullable final com.commercetools.api.models.message.UserProvidedIdentifiers resourceUserProvidedIdentifiers) { 252 this.resourceUserProvidedIdentifiers = resourceUserProvidedIdentifiers; 253 return this; 254 } 255 256 /** 257 * <p>Unique identifier of the Message. Can be used to track which Messages have been processed.</p> 258 * @return id 259 */ 260 261 public String getId() { 262 return this.id; 263 } 264 265 /** 266 * <p>Version of a resource. In case of Messages, this is always <code>1</code>.</p> 267 * @return version 268 */ 269 270 public Long getVersion() { 271 return this.version; 272 } 273 274 /** 275 * <p>Date and time (UTC) the Message was generated.</p> 276 * @return createdAt 277 */ 278 279 public java.time.ZonedDateTime getCreatedAt() { 280 return this.createdAt; 281 } 282 283 /** 284 * <p>Value of <code>createdAt</code>.</p> 285 * @return lastModifiedAt 286 */ 287 288 public java.time.ZonedDateTime getLastModifiedAt() { 289 return this.lastModifiedAt; 290 } 291 292 /** 293 * <p>Value of <code>createdBy</code>.</p> 294 * @return lastModifiedBy 295 */ 296 297 @Nullable 298 public com.commercetools.api.models.common.LastModifiedBy getLastModifiedBy() { 299 return this.lastModifiedBy; 300 } 301 302 /** 303 * <p>Present on resources created after 1 February 2019 except for events not tracked.</p> 304 * @return createdBy 305 */ 306 307 @Nullable 308 public com.commercetools.api.models.common.CreatedBy getCreatedBy() { 309 return this.createdBy; 310 } 311 312 /** 313 * <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> 314 * @return sequenceNumber 315 */ 316 317 public Long getSequenceNumber() { 318 return this.sequenceNumber; 319 } 320 321 /** 322 * <p>Reference to the resource on which the change or action was performed.</p> 323 * @return resource 324 */ 325 326 public com.commercetools.api.models.common.Reference getResource() { 327 return this.resource; 328 } 329 330 /** 331 * <p>Version of the resource on which the change or action was performed.</p> 332 * @return resourceVersion 333 */ 334 335 public Long getResourceVersion() { 336 return this.resourceVersion; 337 } 338 339 /** 340 * <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> 341 * @return resourceUserProvidedIdentifiers 342 */ 343 344 @Nullable 345 public com.commercetools.api.models.message.UserProvidedIdentifiers getResourceUserProvidedIdentifiers() { 346 return this.resourceUserProvidedIdentifiers; 347 } 348 349 /** 350 * builds StagedQuoteDeletedMessage with checking for non-null required values 351 * @return StagedQuoteDeletedMessage 352 */ 353 public StagedQuoteDeletedMessage build() { 354 Objects.requireNonNull(id, StagedQuoteDeletedMessage.class + ": id is missing"); 355 Objects.requireNonNull(version, StagedQuoteDeletedMessage.class + ": version is missing"); 356 Objects.requireNonNull(createdAt, StagedQuoteDeletedMessage.class + ": createdAt is missing"); 357 Objects.requireNonNull(lastModifiedAt, StagedQuoteDeletedMessage.class + ": lastModifiedAt is missing"); 358 Objects.requireNonNull(sequenceNumber, StagedQuoteDeletedMessage.class + ": sequenceNumber is missing"); 359 Objects.requireNonNull(resource, StagedQuoteDeletedMessage.class + ": resource is missing"); 360 Objects.requireNonNull(resourceVersion, StagedQuoteDeletedMessage.class + ": resourceVersion is missing"); 361 return new StagedQuoteDeletedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy, 362 sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers); 363 } 364 365 /** 366 * builds StagedQuoteDeletedMessage without checking for non-null required values 367 * @return StagedQuoteDeletedMessage 368 */ 369 public StagedQuoteDeletedMessage buildUnchecked() { 370 return new StagedQuoteDeletedMessageImpl(id, version, createdAt, lastModifiedAt, lastModifiedBy, createdBy, 371 sequenceNumber, resource, resourceVersion, resourceUserProvidedIdentifiers); 372 } 373 374 /** 375 * factory method for an instance of StagedQuoteDeletedMessageBuilder 376 * @return builder 377 */ 378 public static StagedQuoteDeletedMessageBuilder of() { 379 return new StagedQuoteDeletedMessageBuilder(); 380 } 381 382 /** 383 * create builder for StagedQuoteDeletedMessage instance 384 * @param template instance with prefilled values for the builder 385 * @return builder 386 */ 387 public static StagedQuoteDeletedMessageBuilder of(final StagedQuoteDeletedMessage template) { 388 StagedQuoteDeletedMessageBuilder builder = new StagedQuoteDeletedMessageBuilder(); 389 builder.id = template.getId(); 390 builder.version = template.getVersion(); 391 builder.createdAt = template.getCreatedAt(); 392 builder.lastModifiedAt = template.getLastModifiedAt(); 393 builder.lastModifiedBy = template.getLastModifiedBy(); 394 builder.createdBy = template.getCreatedBy(); 395 builder.sequenceNumber = template.getSequenceNumber(); 396 builder.resource = template.getResource(); 397 builder.resourceVersion = template.getResourceVersion(); 398 builder.resourceUserProvidedIdentifiers = template.getResourceUserProvidedIdentifiers(); 399 return builder; 400 } 401 402}