protected void addDeliveryMethod( final AbstractOrderModel source, final AbstractOrderData prototype) { final DeliveryModeModel deliveryMode = source.getDeliveryMode(); if (deliveryMode != null) { // unnecessary if? if (deliveryMode instanceof ZoneDeliveryModeModel) { final ZoneDeliveryModeData zoneDeliveryModeData = getZoneDeliveryModeConverter().convert((ZoneDeliveryModeModel) deliveryMode); final PriceValue deliveryCost = getDeliveryService() .getDeliveryCostForDeliveryModeAndAbstractOrder(deliveryMode, source); if (deliveryCost != null) { zoneDeliveryModeData.setDeliveryCost( getPriceDataFactory() .create( PriceDataType.BUY, BigDecimal.valueOf(deliveryCost.getValue()), deliveryCost.getCurrencyIso())); } prototype.setDeliveryMode(zoneDeliveryModeData); } else { final DeliveryModeData deliveryModeData = getDeliveryModeConverter().convert(deliveryMode); final PriceValue deliveryCost = getDeliveryService() .getDeliveryCostForDeliveryModeAndAbstractOrder(deliveryMode, source); if (deliveryCost != null) { deliveryModeData.setDeliveryCost( getPriceDataFactory() .create( PriceDataType.BUY, BigDecimal.valueOf(deliveryCost.getValue()), deliveryCost.getCurrencyIso())); } prototype.setDeliveryMode(deliveryModeData); } } }