AbstractCostingVisitor.java
package com.tradecloud.domain.costing.clean;
import com.tradecloud.domain.costing.CostableType;
import com.tradecloud.domain.document.CommercialCreditNote;
import com.tradecloud.domain.document.ServiceProviderCreditNote;
import com.tradecloud.domain.document.invoice.*;
import com.tradecloud.domain.export.ExportInvoice;
import com.tradecloud.domain.item.LineItem;
import com.tradecloud.domain.model.ordermanagement.Consignment;
import com.tradecloud.domain.model.ordermanagement.Order;
import com.tradecloud.domain.shipment.Shipment;
import java.util.Collections;
import java.util.List;
/**
* @author jon
*/
public abstract class AbstractCostingVisitor implements CostingVisitor {
@Override
public void visit(LineItem lineItem) {
}
@Override
public void visit(Order order) {
}
@Override
public void visit(Consignment consignment) {
}
@Override
public void visit(Shipment shipment) {
}
@Override
public void visit(CostedLineItem costedLineItem) {
}
@Override
public void visit(CostedOrder costedOrder) {
}
@Override
public void visit(CostedConsignment costedConsignment) {
}
@Override
public void visit(BaseCommercialInvoice commercialInvoice) {
}
@Override
public void visit(BaseServiceProviderInvoice serviceProviderInvoice) {
}
@Override
public void visit(DeclarationInvoice declarationInvoice) {
}
@Override
public void visit(CommercialCreditNote commercialCreditNote) {
}
@Override
public void visit(ServiceProviderCreditNote serviceProviderCreditNote) {
}
@Override
public void visit(ActualShipment actualShipment) {
}
@Override
public void visit(ActualConsignment actualConsignment) {
}
@Override
public void visit(ActualOrder actualOrder) {
}
@Override
public void visit(ActualLineItem actualLineItem) {
}
@Override
public void visit(ExportInvoice exportInvoice) {
}
protected CostingCell findCostingCell(Actual actual, String costLine) {
return actual.getCostLineCosting().getCachedCostLineCostingCell(costLine);
}
protected CostingCell findCostingCell(Costed costed, String costLine) {
return costed.getCostLineCosting().getCachedCostLineCostingCell(costLine);
}
protected List<CostedLineItem> getAllCostedLineItems(CostedLineItem costedLineItem, CostableType costableType) {
switch (costableType) {
case CONSIGNMENT:
return costedLineItem.getCostedOrder().getParent().getAllCostedLineItems();
case ORDER:
return costedLineItem.getCostedOrder().getCostedLineItems();
case ORDER_LINE_ITEM:
return Collections.singletonList(costedLineItem);
default:
break;
}
return Collections.EMPTY_LIST;
}
protected List<ActualLineItem> getAllActualLineItems(ActualLineItem actualLineItem, CostableType costableType) {
switch (costableType) {
case INVOICE:
return actualLineItem.getCostsInvoice().getActualLineItems();
case CONSIGNMENT:
return (List<ActualLineItem>) actualLineItem.getActualOrder()
.getActualConsignment().getActualItems();
case ORDER:
return actualLineItem.getActualOrder().getActualLineItemList();
case ORDER_LINE_ITEM:
return Collections.singletonList(actualLineItem);
case SHIPMENT:
return actualLineItem.getActualOrder().getActualConsignment().getActualShipment().getActualLineItems();
default:
break;
}
return Collections.EMPTY_LIST;
}
protected List<? extends Costed> getAllItems(Costed item, CostableType costableType) {
if (item.isActual()) {
return getAllActualLineItems((ActualLineItem) item, costableType);
} else {
return getAllCostedLineItems((CostedLineItem) item, costableType);
}
}
}