![JAR search and dependency download from the Maven repository](/logo.png)
com.logicommerce.sdk.builders.order.OrderItemBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sdk Show documentation
Show all versions of sdk Show documentation
SDK for developing Logicommerce plugins.
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