public void msgNewOrder(WaiterAgent w, int tableNum, String order) { print("msgNewOrder() from Waiter " + w.getName()); long timeFinish = -1; if (findFood(order).amount > 0) { timeFinish = (System.currentTimeMillis() + (long) ((menu.menuItems.get(order)) * Constants.SECOND)); int previousInventoryAmount = inventory.get(order); inventory.put(order, previousInventoryAmount - 1); print("Number of items of type " + order + " left: " + inventory.get(order)); Order incomingOrder = new Order(w, tableNum, order, timeFinish); orders.add(incomingOrder); Food f = findFood(order); f.amount--; if (f.amount <= f.low) { marketOrders.add(new MarketOrder(f.choice, f.capacity - f.amount)); f.ordered = true; } } else { Order incomingOrder = new Order(w, tableNum, order, timeFinish); incomingOrder.state = OrderState.UnableToBeSupplied; menu.menuList.remove(order); orders.add(incomingOrder); Food f = findFood(order); marketOrders.add(new MarketOrder(f.choice, f.capacity - f.amount)); } stateChanged(); }