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 * MyCustomerChangeAddressActionBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * MyCustomerChangeAddressAction myCustomerChangeAddressAction = MyCustomerChangeAddressAction.builder() 019 * .address(addressBuilder -> addressBuilder) 020 * .build() 021 * </code></pre> 022 * </div> 023 */ 024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 025public class MyCustomerChangeAddressActionBuilder implements Builder<MyCustomerChangeAddressAction> { 026 027 @Nullable 028 private String addressId; 029 030 @Nullable 031 private String addressKey; 032 033 private com.commercetools.api.models.common.BaseAddress address; 034 035 /** 036 * <p><code>id</code> of the Address to change.</p> 037 * @param addressId value to be set 038 * @return Builder 039 */ 040 041 public MyCustomerChangeAddressActionBuilder addressId(@Nullable final String addressId) { 042 this.addressId = addressId; 043 return this; 044 } 045 046 /** 047 * <p><code>key</code> of the Address to change.</p> 048 * @param addressKey value to be set 049 * @return Builder 050 */ 051 052 public MyCustomerChangeAddressActionBuilder addressKey(@Nullable final String addressKey) { 053 this.addressKey = addressKey; 054 return this; 055 } 056 057 /** 058 * <p>Value to set.</p> 059 * @param builder function to build the address value 060 * @return Builder 061 */ 062 063 public MyCustomerChangeAddressActionBuilder address( 064 Function<com.commercetools.api.models.common.BaseAddressBuilder, com.commercetools.api.models.common.BaseAddressBuilder> builder) { 065 this.address = builder.apply(com.commercetools.api.models.common.BaseAddressBuilder.of()).build(); 066 return this; 067 } 068 069 /** 070 * <p>Value to set.</p> 071 * @param builder function to build the address value 072 * @return Builder 073 */ 074 075 public MyCustomerChangeAddressActionBuilder withAddress( 076 Function<com.commercetools.api.models.common.BaseAddressBuilder, com.commercetools.api.models.common.BaseAddress> builder) { 077 this.address = builder.apply(com.commercetools.api.models.common.BaseAddressBuilder.of()); 078 return this; 079 } 080 081 /** 082 * <p>Value to set.</p> 083 * @param address value to be set 084 * @return Builder 085 */ 086 087 public MyCustomerChangeAddressActionBuilder address(final com.commercetools.api.models.common.BaseAddress address) { 088 this.address = address; 089 return this; 090 } 091 092 /** 093 * <p><code>id</code> of the Address to change.</p> 094 * @return addressId 095 */ 096 097 @Nullable 098 public String getAddressId() { 099 return this.addressId; 100 } 101 102 /** 103 * <p><code>key</code> of the Address to change.</p> 104 * @return addressKey 105 */ 106 107 @Nullable 108 public String getAddressKey() { 109 return this.addressKey; 110 } 111 112 /** 113 * <p>Value to set.</p> 114 * @return address 115 */ 116 117 public com.commercetools.api.models.common.BaseAddress getAddress() { 118 return this.address; 119 } 120 121 /** 122 * builds MyCustomerChangeAddressAction with checking for non-null required values 123 * @return MyCustomerChangeAddressAction 124 */ 125 public MyCustomerChangeAddressAction build() { 126 Objects.requireNonNull(address, MyCustomerChangeAddressAction.class + ": address is missing"); 127 return new MyCustomerChangeAddressActionImpl(addressId, addressKey, address); 128 } 129 130 /** 131 * builds MyCustomerChangeAddressAction without checking for non-null required values 132 * @return MyCustomerChangeAddressAction 133 */ 134 public MyCustomerChangeAddressAction buildUnchecked() { 135 return new MyCustomerChangeAddressActionImpl(addressId, addressKey, address); 136 } 137 138 /** 139 * factory method for an instance of MyCustomerChangeAddressActionBuilder 140 * @return builder 141 */ 142 public static MyCustomerChangeAddressActionBuilder of() { 143 return new MyCustomerChangeAddressActionBuilder(); 144 } 145 146 /** 147 * create builder for MyCustomerChangeAddressAction instance 148 * @param template instance with prefilled values for the builder 149 * @return builder 150 */ 151 public static MyCustomerChangeAddressActionBuilder of(final MyCustomerChangeAddressAction template) { 152 MyCustomerChangeAddressActionBuilder builder = new MyCustomerChangeAddressActionBuilder(); 153 builder.addressId = template.getAddressId(); 154 builder.addressKey = template.getAddressKey(); 155 builder.address = template.getAddress(); 156 return builder; 157 } 158 159}