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 * ParcelRemovedFromDeliveryMessagePayloadBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * ParcelRemovedFromDeliveryMessagePayload parcelRemovedFromDeliveryMessagePayload = ParcelRemovedFromDeliveryMessagePayload.builder() 019 * .deliveryId("{deliveryId}") 020 * .parcel(parcelBuilder -> parcelBuilder) 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 ParcelRemovedFromDeliveryMessagePayloadBuilder 027 implements Builder<ParcelRemovedFromDeliveryMessagePayload> { 028 029 private String deliveryId; 030 031 private com.commercetools.api.models.order.Parcel parcel; 032 033 @Nullable 034 private String shippingKey; 035 036 /** 037 * <p>Unique identifier of the Delivery.</p> 038 * @param deliveryId value to be set 039 * @return Builder 040 */ 041 042 public ParcelRemovedFromDeliveryMessagePayloadBuilder deliveryId(final String deliveryId) { 043 this.deliveryId = deliveryId; 044 return this; 045 } 046 047 /** 048 * <p>Parcel that was removed from the Delivery.</p> 049 * @param builder function to build the parcel value 050 * @return Builder 051 */ 052 053 public ParcelRemovedFromDeliveryMessagePayloadBuilder parcel( 054 Function<com.commercetools.api.models.order.ParcelBuilder, com.commercetools.api.models.order.ParcelBuilder> builder) { 055 this.parcel = builder.apply(com.commercetools.api.models.order.ParcelBuilder.of()).build(); 056 return this; 057 } 058 059 /** 060 * <p>Parcel that was removed from the Delivery.</p> 061 * @param builder function to build the parcel value 062 * @return Builder 063 */ 064 065 public ParcelRemovedFromDeliveryMessagePayloadBuilder withParcel( 066 Function<com.commercetools.api.models.order.ParcelBuilder, com.commercetools.api.models.order.Parcel> builder) { 067 this.parcel = builder.apply(com.commercetools.api.models.order.ParcelBuilder.of()); 068 return this; 069 } 070 071 /** 072 * <p>Parcel that was removed from the Delivery.</p> 073 * @param parcel value to be set 074 * @return Builder 075 */ 076 077 public ParcelRemovedFromDeliveryMessagePayloadBuilder parcel( 078 final com.commercetools.api.models.order.Parcel parcel) { 079 this.parcel = parcel; 080 return this; 081 } 082 083 /** 084 * <p>User-defined unique identifier of the Shipping Method in a Cart with <code>Multiple</code> ShippingMode.</p> 085 * @param shippingKey value to be set 086 * @return Builder 087 */ 088 089 public ParcelRemovedFromDeliveryMessagePayloadBuilder shippingKey(@Nullable final String shippingKey) { 090 this.shippingKey = shippingKey; 091 return this; 092 } 093 094 /** 095 * <p>Unique identifier of the Delivery.</p> 096 * @return deliveryId 097 */ 098 099 public String getDeliveryId() { 100 return this.deliveryId; 101 } 102 103 /** 104 * <p>Parcel that was removed from the Delivery.</p> 105 * @return parcel 106 */ 107 108 public com.commercetools.api.models.order.Parcel getParcel() { 109 return this.parcel; 110 } 111 112 /** 113 * <p>User-defined unique identifier of the Shipping Method in a Cart with <code>Multiple</code> ShippingMode.</p> 114 * @return shippingKey 115 */ 116 117 @Nullable 118 public String getShippingKey() { 119 return this.shippingKey; 120 } 121 122 /** 123 * builds ParcelRemovedFromDeliveryMessagePayload with checking for non-null required values 124 * @return ParcelRemovedFromDeliveryMessagePayload 125 */ 126 public ParcelRemovedFromDeliveryMessagePayload build() { 127 Objects.requireNonNull(deliveryId, ParcelRemovedFromDeliveryMessagePayload.class + ": deliveryId is missing"); 128 Objects.requireNonNull(parcel, ParcelRemovedFromDeliveryMessagePayload.class + ": parcel is missing"); 129 return new ParcelRemovedFromDeliveryMessagePayloadImpl(deliveryId, parcel, shippingKey); 130 } 131 132 /** 133 * builds ParcelRemovedFromDeliveryMessagePayload without checking for non-null required values 134 * @return ParcelRemovedFromDeliveryMessagePayload 135 */ 136 public ParcelRemovedFromDeliveryMessagePayload buildUnchecked() { 137 return new ParcelRemovedFromDeliveryMessagePayloadImpl(deliveryId, parcel, shippingKey); 138 } 139 140 /** 141 * factory method for an instance of ParcelRemovedFromDeliveryMessagePayloadBuilder 142 * @return builder 143 */ 144 public static ParcelRemovedFromDeliveryMessagePayloadBuilder of() { 145 return new ParcelRemovedFromDeliveryMessagePayloadBuilder(); 146 } 147 148 /** 149 * create builder for ParcelRemovedFromDeliveryMessagePayload instance 150 * @param template instance with prefilled values for the builder 151 * @return builder 152 */ 153 public static ParcelRemovedFromDeliveryMessagePayloadBuilder of( 154 final ParcelRemovedFromDeliveryMessagePayload template) { 155 ParcelRemovedFromDeliveryMessagePayloadBuilder builder = new ParcelRemovedFromDeliveryMessagePayloadBuilder(); 156 builder.deliveryId = template.getDeliveryId(); 157 builder.parcel = template.getParcel(); 158 builder.shippingKey = template.getShippingKey(); 159 return builder; 160 } 161 162}