001 002package com.commercetools.api.models.cart; 003 004import java.time.*; 005import java.util.*; 006 007import com.fasterxml.jackson.annotation.JsonCreator; 008import com.fasterxml.jackson.annotation.JsonProperty; 009import com.fasterxml.jackson.databind.annotation.*; 010 011import io.vrap.rmf.base.client.ModelBase; 012import io.vrap.rmf.base.client.utils.Generated; 013 014import org.apache.commons.lang3.builder.EqualsBuilder; 015import org.apache.commons.lang3.builder.HashCodeBuilder; 016 017/** 018 * <p>Wraps all shipping-related information (such as address, rate, deliveries) per Shipping Method for Carts with multiple Shipping Methods.</p> 019 */ 020@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 021public class ShippingDraftImpl implements ShippingDraft, ModelBase { 022 023 private String key; 024 025 private com.commercetools.api.models.shipping_method.ShippingMethodReference shippingMethod; 026 027 private com.commercetools.api.models.common.BaseAddress shippingAddress; 028 029 private com.commercetools.api.models.cart.ShippingRateInputDraft shippingRateInput; 030 031 private com.commercetools.api.models.cart.ExternalTaxRateDraft externalTaxRate; 032 033 private java.util.List<com.commercetools.api.models.order.DeliveryDraft> deliveries; 034 035 private com.commercetools.api.models.type.CustomFieldsDraft custom; 036 037 /** 038 * create instance with all properties 039 */ 040 @JsonCreator 041 ShippingDraftImpl(@JsonProperty("key") final String key, 042 @JsonProperty("shippingMethod") final com.commercetools.api.models.shipping_method.ShippingMethodReference shippingMethod, 043 @JsonProperty("shippingAddress") final com.commercetools.api.models.common.BaseAddress shippingAddress, 044 @JsonProperty("shippingRateInput") final com.commercetools.api.models.cart.ShippingRateInputDraft shippingRateInput, 045 @JsonProperty("externalTaxRate") final com.commercetools.api.models.cart.ExternalTaxRateDraft externalTaxRate, 046 @JsonProperty("deliveries") final java.util.List<com.commercetools.api.models.order.DeliveryDraft> deliveries, 047 @JsonProperty("custom") final com.commercetools.api.models.type.CustomFieldsDraft custom) { 048 this.key = key; 049 this.shippingMethod = shippingMethod; 050 this.shippingAddress = shippingAddress; 051 this.shippingRateInput = shippingRateInput; 052 this.externalTaxRate = externalTaxRate; 053 this.deliveries = deliveries; 054 this.custom = custom; 055 } 056 057 /** 058 * create empty instance 059 */ 060 public ShippingDraftImpl() { 061 } 062 063 /** 064 * <p>User-defined unique identifier for the Shipping in a Cart with <code>Multiple</code> ShippingMode.</p> 065 */ 066 067 public String getKey() { 068 return this.key; 069 } 070 071 /** 072 * <p>Shipping Methods added to the Cart with <code>Multiple</code> ShippingMode.</p> 073 */ 074 075 public com.commercetools.api.models.shipping_method.ShippingMethodReference getShippingMethod() { 076 return this.shippingMethod; 077 } 078 079 /** 080 * <p>Determines the shipping rate and Tax Rate of the associated Line Items.</p> 081 */ 082 083 public com.commercetools.api.models.common.BaseAddress getShippingAddress() { 084 return this.shippingAddress; 085 } 086 087 /** 088 * <p>Input used to select a ShippingRatePriceTier. The data type of this field depends on the <code>shippingRateInputType.type</code> configured in the Project:</p> 089 * <ul> 090 * <li>If <code>CartClassification</code>, it must be ClassificationShippingRateInputDraft.</li> 091 * <li>If <code>CartScore</code>, it must be ScoreShippingRateInputDraft.</li> 092 * <li>If <code>CartValue</code>, it cannot be set.</li> 093 * </ul> 094 */ 095 096 public com.commercetools.api.models.cart.ShippingRateInputDraft getShippingRateInput() { 097 return this.shippingRateInput; 098 } 099 100 /** 101 * <p>Tax Rate used for taxing a shipping expense if the Cart has the <code>External</code> TaxMode.</p> 102 */ 103 104 public com.commercetools.api.models.cart.ExternalTaxRateDraft getExternalTaxRate() { 105 return this.externalTaxRate; 106 } 107 108 /** 109 * <p>Deliveries to be shipped with the Shipping Method.</p> 110 */ 111 112 public java.util.List<com.commercetools.api.models.order.DeliveryDraft> getDeliveries() { 113 return this.deliveries; 114 } 115 116 /** 117 * <p>Custom Fields for Shipping.</p> 118 */ 119 120 public com.commercetools.api.models.type.CustomFieldsDraft getCustom() { 121 return this.custom; 122 } 123 124 public void setKey(final String key) { 125 this.key = key; 126 } 127 128 public void setShippingMethod( 129 final com.commercetools.api.models.shipping_method.ShippingMethodReference shippingMethod) { 130 this.shippingMethod = shippingMethod; 131 } 132 133 public void setShippingAddress(final com.commercetools.api.models.common.BaseAddress shippingAddress) { 134 this.shippingAddress = shippingAddress; 135 } 136 137 public void setShippingRateInput(final com.commercetools.api.models.cart.ShippingRateInputDraft shippingRateInput) { 138 this.shippingRateInput = shippingRateInput; 139 } 140 141 public void setExternalTaxRate(final com.commercetools.api.models.cart.ExternalTaxRateDraft externalTaxRate) { 142 this.externalTaxRate = externalTaxRate; 143 } 144 145 public void setDeliveries(final com.commercetools.api.models.order.DeliveryDraft... deliveries) { 146 this.deliveries = new ArrayList<>(Arrays.asList(deliveries)); 147 } 148 149 public void setDeliveries(final java.util.List<com.commercetools.api.models.order.DeliveryDraft> deliveries) { 150 this.deliveries = deliveries; 151 } 152 153 public void setCustom(final com.commercetools.api.models.type.CustomFieldsDraft custom) { 154 this.custom = custom; 155 } 156 157 @Override 158 public boolean equals(Object o) { 159 if (this == o) 160 return true; 161 162 if (o == null || getClass() != o.getClass()) 163 return false; 164 165 ShippingDraftImpl that = (ShippingDraftImpl) o; 166 167 return new EqualsBuilder().append(key, that.key) 168 .append(shippingMethod, that.shippingMethod) 169 .append(shippingAddress, that.shippingAddress) 170 .append(shippingRateInput, that.shippingRateInput) 171 .append(externalTaxRate, that.externalTaxRate) 172 .append(deliveries, that.deliveries) 173 .append(custom, that.custom) 174 .isEquals(); 175 } 176 177 @Override 178 public int hashCode() { 179 return new HashCodeBuilder(17, 37).append(key) 180 .append(shippingMethod) 181 .append(shippingAddress) 182 .append(shippingRateInput) 183 .append(externalTaxRate) 184 .append(deliveries) 185 .append(custom) 186 .toHashCode(); 187 } 188 189}