001
002package com.commercetools.api.models.shipping_method;
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 * ShippingRateDraft
019 */
020@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
021public class ShippingRateDraftImpl implements ShippingRateDraft, ModelBase {
022
023    private com.commercetools.api.models.common.Money price;
024
025    private com.commercetools.api.models.common.Money freeAbove;
026
027    private java.util.List<com.commercetools.api.models.shipping_method.ShippingRatePriceTier> tiers;
028
029    /**
030     * create instance with all properties
031     */
032    @JsonCreator
033    ShippingRateDraftImpl(@JsonProperty("price") final com.commercetools.api.models.common.Money price,
034            @JsonProperty("freeAbove") final com.commercetools.api.models.common.Money freeAbove,
035            @JsonProperty("tiers") final java.util.List<com.commercetools.api.models.shipping_method.ShippingRatePriceTier> tiers) {
036        this.price = price;
037        this.freeAbove = freeAbove;
038        this.tiers = tiers;
039    }
040
041    /**
042     * create empty instance
043     */
044    public ShippingRateDraftImpl() {
045    }
046
047    /**
048     *  <p>Money value of the ShippingRate.</p>
049     */
050
051    public com.commercetools.api.models.common.Money getPrice() {
052        return this.price;
053    }
054
055    /**
056     *  <p>Shipping is free if the sum of the (Custom) Line Item Prices reaches the specified value.</p>
057     */
058
059    public com.commercetools.api.models.common.Money getFreeAbove() {
060        return this.freeAbove;
061    }
062
063    /**
064     *  <p>Price tiers for the ShippingRate.</p>
065     */
066
067    public java.util.List<com.commercetools.api.models.shipping_method.ShippingRatePriceTier> getTiers() {
068        return this.tiers;
069    }
070
071    public void setPrice(final com.commercetools.api.models.common.Money price) {
072        this.price = price;
073    }
074
075    public void setFreeAbove(final com.commercetools.api.models.common.Money freeAbove) {
076        this.freeAbove = freeAbove;
077    }
078
079    public void setTiers(final com.commercetools.api.models.shipping_method.ShippingRatePriceTier... tiers) {
080        this.tiers = new ArrayList<>(Arrays.asList(tiers));
081    }
082
083    public void setTiers(
084            final java.util.List<com.commercetools.api.models.shipping_method.ShippingRatePriceTier> tiers) {
085        this.tiers = tiers;
086    }
087
088    @Override
089    public boolean equals(Object o) {
090        if (this == o)
091            return true;
092
093        if (o == null || getClass() != o.getClass())
094            return false;
095
096        ShippingRateDraftImpl that = (ShippingRateDraftImpl) o;
097
098        return new EqualsBuilder().append(price, that.price)
099                .append(freeAbove, that.freeAbove)
100                .append(tiers, that.tiers)
101                .isEquals();
102    }
103
104    @Override
105    public int hashCode() {
106        return new HashCodeBuilder(17, 37).append(price).append(freeAbove).append(tiers).toHashCode();
107    }
108
109}