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

com.braintreegateway.Plan Maven / Gradle / Ivy

package com.braintreegateway;

import com.braintreegateway.util.EnumUtils;
import com.braintreegateway.util.NodeWrapper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class Plan {

    public enum DurationUnit {
        DAY, MONTH, UNRECOGNIZED
    }

    private String id;
    private List addOns;
    private String merchantId;
    private Integer billingDayOfMonth;
    private Integer billingFrequency;
    private String currencyIsoCode;
    private String description;
    private List discounts;
    private String name;
    private Integer numberOfBillingCycles;
    private BigDecimal price;
    private Boolean trialPeriod;
    private Integer trialDuration;
    private DurationUnit trialDurationUnit;
    private Calendar createdAt;
    private Calendar updatedAt;

    public Plan(NodeWrapper node) {
        id = node.findString("id");
        addOns = new ArrayList();

        for (NodeWrapper addOnResponse : node.findAll("add-ons/add-on")) {
            addOns.add(new AddOn(addOnResponse));
        }
        merchantId = node.findString("merchant-id");
        billingDayOfMonth = node.findInteger("billing-day-of-month");
        billingFrequency = node.findInteger("billing-frequency");
        createdAt = node.findDateTime("created-at");
        currencyIsoCode = node.findString("currency-iso-code");
        description = node.findString("description");
        discounts = new ArrayList();
        for (NodeWrapper discountResponse : node.findAll("discounts/discount")) {
            discounts.add(new Discount(discountResponse));
        }
        name = node.findString("name");
        numberOfBillingCycles = node.findInteger("number-of-billing-cycles");
        price = node.findBigDecimal("price");
        trialPeriod = node.findBoolean("trial-period");
        trialDuration = node.findInteger("trial-duration");
        trialDurationUnit = EnumUtils.findByName(Plan.DurationUnit.class, node.findString("trial-duration-unit"), Plan.DurationUnit.UNRECOGNIZED);
        updatedAt = node.findDateTime("updated-at");
    }

    public List getAddOns() {
        return addOns;
    }

    public Integer getBillingFrequency() {
        return billingFrequency;
    }

    public String getDescription() {
        return description;
    }

    public List getDiscounts() {
        return discounts;
    }

    public String getId() {
        return id;
    }

    public Integer getNumberOfBillingCycles() {
        return numberOfBillingCycles;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public Boolean hasTrialPeriod() {
        return trialPeriod;
    }

    public Integer getTrialDuration() {
        return trialDuration;
    }

    public Plan.DurationUnit getTrialDurationUnit() {
        return trialDurationUnit;
    }

    public String getMerchantId() {
        return merchantId;
    }

    public Integer getBillingDayOfMonth() {
        return billingDayOfMonth;
    }

    public String getCurrencyIsoCode() {
        return currencyIsoCode;
    }

    public String getName() {
        return name;
    }

    public Calendar getCreatedAt() {
        return createdAt;
    }

    public Calendar getUpdatedAt() {
        return updatedAt;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy