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