001 002package com.commercetools.api.models.shipping_method; 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 * ShippingMethodRemoveShippingRateActionBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * ShippingMethodRemoveShippingRateAction shippingMethodRemoveShippingRateAction = ShippingMethodRemoveShippingRateAction.builder() 017 * .zone(zoneBuilder -> zoneBuilder) 018 * .shippingRate(shippingRateBuilder -> shippingRateBuilder) 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 ShippingMethodRemoveShippingRateActionBuilder implements Builder<ShippingMethodRemoveShippingRateAction> { 025 026 private com.commercetools.api.models.zone.ZoneResourceIdentifier zone; 027 028 private com.commercetools.api.models.shipping_method.ShippingRateDraft shippingRate; 029 030 /** 031 * <p>Zone from which the ShippingRate should be removed.</p> 032 * @param builder function to build the zone value 033 * @return Builder 034 */ 035 036 public ShippingMethodRemoveShippingRateActionBuilder zone( 037 Function<com.commercetools.api.models.zone.ZoneResourceIdentifierBuilder, com.commercetools.api.models.zone.ZoneResourceIdentifierBuilder> builder) { 038 this.zone = builder.apply(com.commercetools.api.models.zone.ZoneResourceIdentifierBuilder.of()).build(); 039 return this; 040 } 041 042 /** 043 * <p>Zone from which the ShippingRate should be removed.</p> 044 * @param builder function to build the zone value 045 * @return Builder 046 */ 047 048 public ShippingMethodRemoveShippingRateActionBuilder withZone( 049 Function<com.commercetools.api.models.zone.ZoneResourceIdentifierBuilder, com.commercetools.api.models.zone.ZoneResourceIdentifier> builder) { 050 this.zone = builder.apply(com.commercetools.api.models.zone.ZoneResourceIdentifierBuilder.of()); 051 return this; 052 } 053 054 /** 055 * <p>Zone from which the ShippingRate should be removed.</p> 056 * @param zone value to be set 057 * @return Builder 058 */ 059 060 public ShippingMethodRemoveShippingRateActionBuilder zone( 061 final com.commercetools.api.models.zone.ZoneResourceIdentifier zone) { 062 this.zone = zone; 063 return this; 064 } 065 066 /** 067 * <p>Value to remove from <code>shippingRates</code>.</p> 068 * @param builder function to build the shippingRate value 069 * @return Builder 070 */ 071 072 public ShippingMethodRemoveShippingRateActionBuilder shippingRate( 073 Function<com.commercetools.api.models.shipping_method.ShippingRateDraftBuilder, com.commercetools.api.models.shipping_method.ShippingRateDraftBuilder> builder) { 074 this.shippingRate = builder.apply(com.commercetools.api.models.shipping_method.ShippingRateDraftBuilder.of()) 075 .build(); 076 return this; 077 } 078 079 /** 080 * <p>Value to remove from <code>shippingRates</code>.</p> 081 * @param builder function to build the shippingRate value 082 * @return Builder 083 */ 084 085 public ShippingMethodRemoveShippingRateActionBuilder withShippingRate( 086 Function<com.commercetools.api.models.shipping_method.ShippingRateDraftBuilder, com.commercetools.api.models.shipping_method.ShippingRateDraft> builder) { 087 this.shippingRate = builder.apply(com.commercetools.api.models.shipping_method.ShippingRateDraftBuilder.of()); 088 return this; 089 } 090 091 /** 092 * <p>Value to remove from <code>shippingRates</code>.</p> 093 * @param shippingRate value to be set 094 * @return Builder 095 */ 096 097 public ShippingMethodRemoveShippingRateActionBuilder shippingRate( 098 final com.commercetools.api.models.shipping_method.ShippingRateDraft shippingRate) { 099 this.shippingRate = shippingRate; 100 return this; 101 } 102 103 /** 104 * <p>Zone from which the ShippingRate should be removed.</p> 105 * @return zone 106 */ 107 108 public com.commercetools.api.models.zone.ZoneResourceIdentifier getZone() { 109 return this.zone; 110 } 111 112 /** 113 * <p>Value to remove from <code>shippingRates</code>.</p> 114 * @return shippingRate 115 */ 116 117 public com.commercetools.api.models.shipping_method.ShippingRateDraft getShippingRate() { 118 return this.shippingRate; 119 } 120 121 /** 122 * builds ShippingMethodRemoveShippingRateAction with checking for non-null required values 123 * @return ShippingMethodRemoveShippingRateAction 124 */ 125 public ShippingMethodRemoveShippingRateAction build() { 126 Objects.requireNonNull(zone, ShippingMethodRemoveShippingRateAction.class + ": zone is missing"); 127 Objects.requireNonNull(shippingRate, 128 ShippingMethodRemoveShippingRateAction.class + ": shippingRate is missing"); 129 return new ShippingMethodRemoveShippingRateActionImpl(zone, shippingRate); 130 } 131 132 /** 133 * builds ShippingMethodRemoveShippingRateAction without checking for non-null required values 134 * @return ShippingMethodRemoveShippingRateAction 135 */ 136 public ShippingMethodRemoveShippingRateAction buildUnchecked() { 137 return new ShippingMethodRemoveShippingRateActionImpl(zone, shippingRate); 138 } 139 140 /** 141 * factory method for an instance of ShippingMethodRemoveShippingRateActionBuilder 142 * @return builder 143 */ 144 public static ShippingMethodRemoveShippingRateActionBuilder of() { 145 return new ShippingMethodRemoveShippingRateActionBuilder(); 146 } 147 148 /** 149 * create builder for ShippingMethodRemoveShippingRateAction instance 150 * @param template instance with prefilled values for the builder 151 * @return builder 152 */ 153 public static ShippingMethodRemoveShippingRateActionBuilder of( 154 final ShippingMethodRemoveShippingRateAction template) { 155 ShippingMethodRemoveShippingRateActionBuilder builder = new ShippingMethodRemoveShippingRateActionBuilder(); 156 builder.zone = template.getZone(); 157 builder.shippingRate = template.getShippingRate(); 158 return builder; 159 } 160 161}