@Override public boolean isAddOnOrderItem(OrderItem orderItem) { if (DiscreteOrderItem.class.isAssignableFrom(orderItem.getClass())) { DiscreteOrderItem discreteOrderItem = (DiscreteOrderItem) orderItem; Map<String, String> attributes = discreteOrderItem.getAdditionalAttributes(); boolean isAddOnOrderItem = attributes.containsKey("addOnXrefId"); boolean isChildOrderItem = discreteOrderItem.isChildOrderItem(); return isChildOrderItem && isAddOnOrderItem; } return false; }
@Override public OrderItem clone() { DiscreteOrderItem orderItem = (DiscreteOrderItem) super.clone(); if (discreteOrderItemFeePrices != null) { for (DiscreteOrderItemFeePrice feePrice : discreteOrderItemFeePrices) { DiscreteOrderItemFeePrice cloneFeePrice = feePrice.clone(); cloneFeePrice.setDiscreteOrderItem(orderItem); orderItem.getDiscreteOrderItemFeePrices().add(cloneFeePrice); } } if (additionalAttributes != null) { orderItem.getAdditionalAttributes().putAll(additionalAttributes); } orderItem.setBaseRetailPrice(convertToMoney(baseRetailPrice)); orderItem.setBaseSalePrice(convertToMoney(baseSalePrice)); orderItem.setBundleOrderItem(bundleOrderItem); orderItem.setProduct(product); orderItem.setSku(sku); if (orderItem.getOrder() == null) { throw new IllegalStateException("Either an Order or a BundleOrderItem must be set on the DiscreteOrderItem"); } return orderItem; }
if (doi.getAdditionalAttributes() != null) { for (Entry<String, String> entry : doi.getAdditionalAttributes().entrySet()) { orderItemRequest.getAdditionalAttributes().put(entry.getKey(), entry.getValue());
discreteOrderItem.getAdditionalAttributes().putAll(orderItemRequestDTO.getAdditionalAttributes());