001 002package com.commercetools.api.models.order; 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 * OrderSetDeliveryAddressActionBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * OrderSetDeliveryAddressAction orderSetDeliveryAddressAction = OrderSetDeliveryAddressAction.builder() 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 OrderSetDeliveryAddressActionBuilder implements Builder<OrderSetDeliveryAddressAction> { 025 026 @Nullable 027 private String deliveryId; 028 029 @Nullable 030 private String deliveryKey; 031 032 @Nullable 033 private com.commercetools.api.models.common.BaseAddress address; 034 035 /** 036 * <p><code>id</code> of an existing Delivery.</p> 037 * <p>Either <code>deliveryId</code> or <code>deliveryKey</code> must be provided.</p> 038 * @param deliveryId value to be set 039 * @return Builder 040 */ 041 042 public OrderSetDeliveryAddressActionBuilder deliveryId(@Nullable final String deliveryId) { 043 this.deliveryId = deliveryId; 044 return this; 045 } 046 047 /** 048 * <p><code>key</code> of an existing Delivery.</p> 049 * <p>Either <code>deliveryId</code> or <code>deliveryKey</code> must be provided.</p> 050 * @param deliveryKey value to be set 051 * @return Builder 052 */ 053 054 public OrderSetDeliveryAddressActionBuilder deliveryKey(@Nullable final String deliveryKey) { 055 this.deliveryKey = deliveryKey; 056 return this; 057 } 058 059 /** 060 * <p>Value to set. If empty, any existing value is removed.</p> 061 * @param builder function to build the address value 062 * @return Builder 063 */ 064 065 public OrderSetDeliveryAddressActionBuilder address( 066 Function<com.commercetools.api.models.common.BaseAddressBuilder, com.commercetools.api.models.common.BaseAddressBuilder> builder) { 067 this.address = builder.apply(com.commercetools.api.models.common.BaseAddressBuilder.of()).build(); 068 return this; 069 } 070 071 /** 072 * <p>Value to set. If empty, any existing value is removed.</p> 073 * @param builder function to build the address value 074 * @return Builder 075 */ 076 077 public OrderSetDeliveryAddressActionBuilder withAddress( 078 Function<com.commercetools.api.models.common.BaseAddressBuilder, com.commercetools.api.models.common.BaseAddress> builder) { 079 this.address = builder.apply(com.commercetools.api.models.common.BaseAddressBuilder.of()); 080 return this; 081 } 082 083 /** 084 * <p>Value to set. If empty, any existing value is removed.</p> 085 * @param address value to be set 086 * @return Builder 087 */ 088 089 public OrderSetDeliveryAddressActionBuilder address( 090 @Nullable final com.commercetools.api.models.common.BaseAddress address) { 091 this.address = address; 092 return this; 093 } 094 095 /** 096 * <p><code>id</code> of an existing Delivery.</p> 097 * <p>Either <code>deliveryId</code> or <code>deliveryKey</code> must be provided.</p> 098 * @return deliveryId 099 */ 100 101 @Nullable 102 public String getDeliveryId() { 103 return this.deliveryId; 104 } 105 106 /** 107 * <p><code>key</code> of an existing Delivery.</p> 108 * <p>Either <code>deliveryId</code> or <code>deliveryKey</code> must be provided.</p> 109 * @return deliveryKey 110 */ 111 112 @Nullable 113 public String getDeliveryKey() { 114 return this.deliveryKey; 115 } 116 117 /** 118 * <p>Value to set. If empty, any existing value is removed.</p> 119 * @return address 120 */ 121 122 @Nullable 123 public com.commercetools.api.models.common.BaseAddress getAddress() { 124 return this.address; 125 } 126 127 /** 128 * builds OrderSetDeliveryAddressAction with checking for non-null required values 129 * @return OrderSetDeliveryAddressAction 130 */ 131 public OrderSetDeliveryAddressAction build() { 132 return new OrderSetDeliveryAddressActionImpl(deliveryId, deliveryKey, address); 133 } 134 135 /** 136 * builds OrderSetDeliveryAddressAction without checking for non-null required values 137 * @return OrderSetDeliveryAddressAction 138 */ 139 public OrderSetDeliveryAddressAction buildUnchecked() { 140 return new OrderSetDeliveryAddressActionImpl(deliveryId, deliveryKey, address); 141 } 142 143 /** 144 * factory method for an instance of OrderSetDeliveryAddressActionBuilder 145 * @return builder 146 */ 147 public static OrderSetDeliveryAddressActionBuilder of() { 148 return new OrderSetDeliveryAddressActionBuilder(); 149 } 150 151 /** 152 * create builder for OrderSetDeliveryAddressAction instance 153 * @param template instance with prefilled values for the builder 154 * @return builder 155 */ 156 public static OrderSetDeliveryAddressActionBuilder of(final OrderSetDeliveryAddressAction template) { 157 OrderSetDeliveryAddressActionBuilder builder = new OrderSetDeliveryAddressActionBuilder(); 158 builder.deliveryId = template.getDeliveryId(); 159 builder.deliveryKey = template.getDeliveryKey(); 160 builder.address = template.getAddress(); 161 return builder; 162 } 163 164}