All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adyen.model.checkout.LineItem Maven / Gradle / Ivy

There is a newer version: 28.4.0
Show newest version
/*
 *                       ######
 *                       ######
 * ############    ####( ######  #####. ######  ############   ############
 * #############  #####( ######  #####. ######  #############  #############
 *        ######  #####( ######  #####. ######  #####  ######  #####  ######
 * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
 * ###### ######  #####( ######  #####. ######  #####          #####  ######
 * #############  #############  #############  #############  #####  ######
 *  ############   ############  #############   ############  #####  ######
 *                                      ######
 *                               #############
 *                               ############
 *
 * Adyen Java API Library
 *
 * Copyright (c) 2018 Adyen B.V.
 * This file is open source and available under the MIT license.
 * See the LICENSE file for more info.
 */

package com.adyen.model.checkout;

import com.fasterxml.jackson.annotation.JsonValue;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;

import java.io.IOException;
import java.util.Arrays;
import java.util.Objects;


import static com.adyen.util.Util.toIndentedString;

/**
 * LineItem
 */
public class LineItem {

    @SerializedName("amountExcludingTax")
    private Long amountExcludingTax = null;

    @SerializedName("amountIncludingTax")
    private Long amountIncludingTax = null;

    @SerializedName("description")
    private String description = null;

    @SerializedName("id")
    private String id = null;

    @SerializedName("quantity")
    private Long quantity = null;

    @SerializedName("taxAmount")
    private Long taxAmount = null;
    @SerializedName("taxCategory")
    private TaxCategoryEnum taxCategory = null;
    @SerializedName("taxPercentage")
    private Long taxPercentage = null;

    @SerializedName("productUrl")
    private String productUrl;

    @SerializedName("imageUrl")
    private String imageUrl;

    public LineItem amountExcludingTax(Long amountExcludingTax) {
        this.amountExcludingTax = amountExcludingTax;
        return this;
    }

    /**
     * Item amount excluding the tax, in minor units.
     *
     * @return amountExcludingTax
     **/
    public Long getAmountExcludingTax() {
        return amountExcludingTax;
    }

    public void setAmountExcludingTax(Long amountExcludingTax) {
        this.amountExcludingTax = amountExcludingTax;
    }

    public LineItem amountIncludingTax(Long amountIncludingTax) {
        this.amountIncludingTax = amountIncludingTax;
        return this;
    }

    /**
     * Item amount including the tax, in minor units.
     *
     * @return amountIncludingTax
     **/
    public Long getAmountIncludingTax() {
        return amountIncludingTax;
    }

    public void setAmountIncludingTax(Long amountIncludingTax) {
        this.amountIncludingTax = amountIncludingTax;
    }

    public LineItem description(String description) {
        this.description = description;
        return this;
    }

    /**
     * Description of the line item.
     *
     * @return description
     **/
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public LineItem id(String id) {
        this.id = id;
        return this;
    }

    /**
     * ID of the line item.
     *
     * @return id
     **/
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public LineItem quantity(Long quantity) {
        this.quantity = quantity;
        return this;
    }

    /**
     * Number of items.
     *
     * @return quantity
     **/
    public Long getQuantity() {
        return quantity;
    }

    public void setQuantity(Long quantity) {
        this.quantity = quantity;
    }

    public LineItem taxAmount(Long taxAmount) {
        this.taxAmount = taxAmount;
        return this;
    }

    /**
     * Tax amount, in minor units.
     *
     * @return taxAmount
     **/
    public Long getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(Long taxAmount) {
        this.taxAmount = taxAmount;
    }

    public LineItem taxCategory(TaxCategoryEnum taxCategory) {
        this.taxCategory = taxCategory;
        return this;
    }

    /**
     * Tax category: High, Low, None, Zero
     *
     * @return taxCategory
     **/
    public TaxCategoryEnum getTaxCategory() {
        return taxCategory;
    }

    public void setTaxCategory(TaxCategoryEnum taxCategory) {
        this.taxCategory = taxCategory;
    }

    public LineItem taxPercentage(Long taxPercentage) {
        this.taxPercentage = taxPercentage;
        return this;
    }

    /**
     * Tax percentage, in minor units.
     *
     * @return taxPercentage
     **/
    public Long getTaxPercentage() {
        return taxPercentage;
    }

    public void setTaxPercentage(Long taxPercentage) {
        this.taxPercentage = taxPercentage;
    }

    public LineItem productUrl(String productUrl) {
        this.productUrl = productUrl;
        return this;
    }

    public String getProductUrl() {
        return productUrl;
    }

    public void setProductUrl(String productUrl) {
        this.productUrl = productUrl;
    }

    public LineItem imageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
        return this;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        LineItem lineItem = (LineItem) o;
        return Objects.equals(this.amountExcludingTax, lineItem.amountExcludingTax) &&
                Objects.equals(this.amountIncludingTax, lineItem.amountIncludingTax) &&
                Objects.equals(this.description, lineItem.description) &&
                Objects.equals(this.id, lineItem.id) &&
                Objects.equals(this.quantity, lineItem.quantity) &&
                Objects.equals(this.taxAmount, lineItem.taxAmount) &&
                Objects.equals(this.taxCategory, lineItem.taxCategory) &&
                Objects.equals(this.taxPercentage, lineItem.taxPercentage) &&
                Objects.equals(this.imageUrl, lineItem.imageUrl) &&
                Objects.equals(this.productUrl, lineItem.productUrl);
    }

    @Override
    public int hashCode() {
        return Objects.hash(amountExcludingTax, amountIncludingTax, description, id, quantity, taxAmount, taxCategory, taxPercentage, imageUrl, productUrl);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class LineItem {\n");

        sb.append("    amountExcludingTax: ").append(toIndentedString(amountExcludingTax)).append("\n");
        sb.append("    amountIncludingTax: ").append(toIndentedString(amountIncludingTax)).append("\n");
        sb.append("    description: ").append(toIndentedString(description)).append("\n");
        sb.append("    id: ").append(toIndentedString(id)).append("\n");
        sb.append("    quantity: ").append(toIndentedString(quantity)).append("\n");
        sb.append("    taxAmount: ").append(toIndentedString(taxAmount)).append("\n");
        sb.append("    taxCategory: ").append(toIndentedString(taxCategory)).append("\n");
        sb.append("    taxPercentage: ").append(toIndentedString(taxPercentage)).append("\n");
        sb.append("    imageUrl: ").append(toIndentedString(imageUrl)).append("\n");
        sb.append("    productUrl: ").append(toIndentedString(productUrl)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /**
     * Tax category: High, Low, None, Zero
     */
    @JsonAdapter(TaxCategoryEnum.Adapter.class)
    public enum TaxCategoryEnum {

        HIGH("High"),
        LOW("Low"),
        NONE("None"),
        ZERO("Zero");

        @JsonValue
        private String value;

        TaxCategoryEnum(String value) {
            this.value = value;
        }

        public static TaxCategoryEnum fromValue(String text) {
            return Arrays.stream(values()).
                    filter(s -> s.value.equals(text)).
                    findFirst().orElse(null);
        }

        public String getValue() {
            return value;
        }

        @Override
        public String toString() {
            return String.valueOf(value);
        }

        public static class Adapter extends TypeAdapter {
            @Override
            public void write(final JsonWriter jsonWriter, final TaxCategoryEnum enumeration) throws IOException {
                jsonWriter.value(enumeration.getValue());
            }

            @Override
            public TaxCategoryEnum read(final JsonReader jsonReader) throws IOException {
                String value = jsonReader.nextString();
                return TaxCategoryEnum.fromValue(String.valueOf(value));
            }
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy