001 002package com.commercetools.api.models.message; 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 * OrderLineItemAddedMessagePayloadBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * OrderLineItemAddedMessagePayload orderLineItemAddedMessagePayload = OrderLineItemAddedMessagePayload.builder() 017 * .lineItem(lineItemBuilder -> lineItemBuilder) 018 * .addedQuantity(0.3) 019 * .build() 020 * </code></pre> 021 * </div> 022 */ 023@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 024public class OrderLineItemAddedMessagePayloadBuilder implements Builder<OrderLineItemAddedMessagePayload> { 025 026 private com.commercetools.api.models.cart.LineItem lineItem; 027 028 private Long addedQuantity; 029 030 /** 031 * <p>Line Item that was added to the Order.</p> 032 * @param builder function to build the lineItem value 033 * @return Builder 034 */ 035 036 public OrderLineItemAddedMessagePayloadBuilder lineItem( 037 Function<com.commercetools.api.models.cart.LineItemBuilder, com.commercetools.api.models.cart.LineItemBuilder> builder) { 038 this.lineItem = builder.apply(com.commercetools.api.models.cart.LineItemBuilder.of()).build(); 039 return this; 040 } 041 042 /** 043 * <p>Line Item that was added to the Order.</p> 044 * @param builder function to build the lineItem value 045 * @return Builder 046 */ 047 048 public OrderLineItemAddedMessagePayloadBuilder withLineItem( 049 Function<com.commercetools.api.models.cart.LineItemBuilder, com.commercetools.api.models.cart.LineItem> builder) { 050 this.lineItem = builder.apply(com.commercetools.api.models.cart.LineItemBuilder.of()); 051 return this; 052 } 053 054 /** 055 * <p>Line Item that was added to the Order.</p> 056 * @param lineItem value to be set 057 * @return Builder 058 */ 059 060 public OrderLineItemAddedMessagePayloadBuilder lineItem(final com.commercetools.api.models.cart.LineItem lineItem) { 061 this.lineItem = lineItem; 062 return this; 063 } 064 065 /** 066 * <p>Quantity of Line Items that were added to the Order.</p> 067 * @param addedQuantity value to be set 068 * @return Builder 069 */ 070 071 public OrderLineItemAddedMessagePayloadBuilder addedQuantity(final Long addedQuantity) { 072 this.addedQuantity = addedQuantity; 073 return this; 074 } 075 076 /** 077 * <p>Line Item that was added to the Order.</p> 078 * @return lineItem 079 */ 080 081 public com.commercetools.api.models.cart.LineItem getLineItem() { 082 return this.lineItem; 083 } 084 085 /** 086 * <p>Quantity of Line Items that were added to the Order.</p> 087 * @return addedQuantity 088 */ 089 090 public Long getAddedQuantity() { 091 return this.addedQuantity; 092 } 093 094 /** 095 * builds OrderLineItemAddedMessagePayload with checking for non-null required values 096 * @return OrderLineItemAddedMessagePayload 097 */ 098 public OrderLineItemAddedMessagePayload build() { 099 Objects.requireNonNull(lineItem, OrderLineItemAddedMessagePayload.class + ": lineItem is missing"); 100 Objects.requireNonNull(addedQuantity, OrderLineItemAddedMessagePayload.class + ": addedQuantity is missing"); 101 return new OrderLineItemAddedMessagePayloadImpl(lineItem, addedQuantity); 102 } 103 104 /** 105 * builds OrderLineItemAddedMessagePayload without checking for non-null required values 106 * @return OrderLineItemAddedMessagePayload 107 */ 108 public OrderLineItemAddedMessagePayload buildUnchecked() { 109 return new OrderLineItemAddedMessagePayloadImpl(lineItem, addedQuantity); 110 } 111 112 /** 113 * factory method for an instance of OrderLineItemAddedMessagePayloadBuilder 114 * @return builder 115 */ 116 public static OrderLineItemAddedMessagePayloadBuilder of() { 117 return new OrderLineItemAddedMessagePayloadBuilder(); 118 } 119 120 /** 121 * create builder for OrderLineItemAddedMessagePayload instance 122 * @param template instance with prefilled values for the builder 123 * @return builder 124 */ 125 public static OrderLineItemAddedMessagePayloadBuilder of(final OrderLineItemAddedMessagePayload template) { 126 OrderLineItemAddedMessagePayloadBuilder builder = new OrderLineItemAddedMessagePayloadBuilder(); 127 builder.lineItem = template.getLineItem(); 128 builder.addedQuantity = template.getAddedQuantity(); 129 return builder; 130 } 131 132}