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

com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder Maven / Gradle / Ivy

There is a newer version: 2.3.0
Show newest version
package com.logicommerce.sdk.builders.order;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import com.logicommerce.sdk.enums.AmountType;
import com.logicommerce.sdk.models.order.OrderPaymentSystem;
import com.logicommerce.sdk.models.order.implementations.OrderPaymentSystemImpl;

/**
 * 

OrderPaymentSystemBuilder class.

* * @author Logicommerce * @since 1.0.16 */ public class OrderPaymentSystemBuilder { private T parentBuilder; protected Integer id; protected int paymentSystemId; protected List>> taxes; protected String name; protected AmountType increaseType; protected double increaseValue; protected double price; protected double increaseMin; protected boolean cashOnDelivery; protected String property; /** *

Constructor for OrderPaymentSystemBuilder.

*/ public OrderPaymentSystemBuilder() { taxes = new ArrayList<>(); } /** *

Constructor for OrderPaymentSystemBuilder.

* * @param parentBuilder a T object */ public OrderPaymentSystemBuilder(T parentBuilder) { this(); this.parentBuilder = parentBuilder; } /** *

id.

* * @param id a {@link java.lang.Integer} object * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder id(Integer id) { this.id = id; return this; } /** *

paymentSystemId.

* * @param paymentSystemId a int * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder paymentSystemId(int paymentSystemId) { this.paymentSystemId = paymentSystemId; return this; } /** *

tax.

* * @return a {@link com.logicommerce.sdk.builders.order.OrderTaxBuilder} object */ public OrderTaxBuilder> tax() { OrderTaxBuilder> tax = new OrderTaxBuilder<>(this); taxes.add(tax); return tax; } /** *

name.

* * @param name a {@link java.lang.String} object * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder name(String name) { this.name = name; return this; } /** *

increaseType.

* * @param increaseType a {@link com.logicommerce.sdk.enums.AmountType} object * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder increaseType(AmountType increaseType) { this.increaseType = increaseType; return this; } /** *

increaseValue.

* * @param increaseValue a double * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder increaseValue(double increaseValue) { this.increaseValue = increaseValue; return this; } /** *

price.

* * @param price a double * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder price(double price) { this.price = price; return this; } /** *

increaseMin.

* * @param increaseMin a double * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder increaseMin(double increaseMin) { this.increaseMin = increaseMin; return this; } /** *

cashOnDelivery.

* * @param cashOnDelivery a boolean * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder cashOnDelivery(boolean cashOnDelivery) { this.cashOnDelivery = cashOnDelivery; return this; } /** *

property.

* * @param property a {@link java.lang.String} object * @return a {@link com.logicommerce.sdk.builders.order.OrderPaymentSystemBuilder} object */ public OrderPaymentSystemBuilder property(String property) { this.property = property; return this; } /** *

build.

* * @return a {@link com.logicommerce.sdk.models.order.OrderPaymentSystem} object */ public OrderPaymentSystem build() { OrderPaymentSystemImpl paymentSystem = new OrderPaymentSystemImpl(); paymentSystem.setId(null); paymentSystem.setPaymentSystemId(paymentSystemId); paymentSystem.setTaxes(taxes.stream().map(OrderTaxBuilder::build).collect(Collectors.toList())); paymentSystem.setName(name); paymentSystem.setIncreaseType(increaseType); paymentSystem.setIncreaseValue(increaseValue); paymentSystem.setPrice(price); paymentSystem.setIncreaseMin(increaseMin); paymentSystem.setCashOnDelivery(cashOnDelivery); paymentSystem.setProperty(property); return paymentSystem; } /** *

done.

* * @return a T object */ public T done() { return parentBuilder; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy