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

com.logicommerce.sdk.builders.order.OrderItemBuilder 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.builders.CustomTagBuilder;
import com.logicommerce.sdk.builders.RowCodesBuilder;
import com.logicommerce.sdk.enums.BackorderMode;
import com.logicommerce.sdk.models.order.OrderItem;
import com.logicommerce.sdk.models.order.implementations.OrderItemImpl;

/**
 * 

OrderItemBuilder class.

* * @author Logicommerce * @since 1.0.16 */ public class OrderItemBuilder { private T parentBuilder; private Integer id; private String pId; private String hash; private List>> taxes; private List>> options; private List>> stocks; private List>> customTags; private List>> discounts; private String name; private int quantity; private Integer productId; private double weight; private OrderItemPricesBuilder> prices; private Integer vinculatedTo; private String image; private boolean sale; private boolean stockManagement; private boolean reverseChargeVat; private RowCodesBuilder> codes; private boolean noReturn; private BackorderMode backOrder; private boolean onRequest; private int onRequestDays; private String supplierReference; /** *

Constructor for OrderItemBuilder.

*/ public OrderItemBuilder() { taxes = new ArrayList<>(); options = new ArrayList<>(); stocks = new ArrayList<>(); customTags = new ArrayList<>(); discounts = new ArrayList<>(); prices = new OrderItemPricesBuilder<>(this); codes = new RowCodesBuilder<>(this); backOrder = BackorderMode.NONE; } /** *

Constructor for OrderItemBuilder.

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

id.

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

pId.

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

hash.

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

taxes.

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

options.

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

stocks.

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

customTag.

* * @return a {@link com.logicommerce.sdk.builders.CustomTagBuilder} object */ public CustomTagBuilder> customTag() { CustomTagBuilder> customTag = new CustomTagBuilder<>(this); customTags.add(customTag); return customTag; } /** *

discount.

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

name.

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

quantity.

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

productId.

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

weight.

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

prices.

* * @return a {@link com.logicommerce.sdk.builders.order.OrderItemPricesBuilder} object */ public OrderItemPricesBuilder> prices() { return prices; } /** *

vinculatedTo.

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

image.

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

sale.

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

stockManagement.

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

reverseChargeVat.

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

codes.

* * @return a {@link com.logicommerce.sdk.builders.RowCodesBuilder} object */ public RowCodesBuilder> codes() { return codes; } /** *

noReturn.

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

backOrder.

* * @param backOrder a {@link com.logicommerce.sdk.enums.BackorderMode} object * @return a {@link com.logicommerce.sdk.builders.order.OrderItemBuilder} object */ public OrderItemBuilder backOrder(BackorderMode backOrder) { this.backOrder = backOrder; return this; } /** *

onRequest.

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

onRequestDays.

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

supplierReference.

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

build.

* * @return a {@link com.logicommerce.sdk.models.order.OrderItem} object */ public OrderItem build() { OrderItemImpl item = new OrderItemImpl(); if (id != null) { item.setId(id); } item.setId(null); item.setPId(pId); item.setHash(hash); item.setTaxes(taxes.stream().map(OrderItemTaxBuilder::build).collect(Collectors.toList())); item.setOptions(options.stream().map(OrderItemOptionBuilder::build).collect(Collectors.toList())); item.setStocks(stocks.stream().map(OrderItemStockBuilder::build).collect(Collectors.toList())); item.setCustomTags(customTags.stream().map(CustomTagBuilder::build).collect(Collectors.toList())); item.setDiscounts(discounts.stream().map(OrderDiscountBuilder::build).collect(Collectors.toList())); item.setName(name); item.setQuantity(quantity); item.setProductId(productId); item.setWeight(weight); item.setPrices(prices.build()); item.setVinculatedTo(vinculatedTo); item.setImage(image); item.setSale(sale); item.setStockManagement(stockManagement); item.setReverseChargeVat(reverseChargeVat); item.setCodes(codes.build()); item.setNoReturn(noReturn); item.setBackOrder(backOrder); item.setOnRequest(onRequest); item.setOnRequestDays(onRequestDays); item.setSupplierReference(supplierReference); return item; } /** * Returns the parent builder. * * @return a T object */ public T done() { return parentBuilder; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy