/** * gets a valid transport firm that supports a package * * @precondition requires firms to be sorted by cost * @param md * @return */ public TransportFirm getTransportFirm(MailDelivery md) { Priority p = md.priority; double weight = md.weight; double volume = md.volume; for (TransportFirm t : firms) { if (weight <= t.getMaxWeight() && volume <= t.getMaxVolume() && !(p.isAir() == !t.getType().isAir())) return t; } return null; }