Сделал сначала через Date, потом переделал через String, все равно что-то не нравится, вывод верный, даже даты менял при тестировании чтобы увидеть разные дни, и убрал разделяющую строку в поварах
04-Aug-2018 - 2.50
Total - 2.50
04-Aug-2018
Amigo - 25 min
Сергей - 25 min
Уже отрефакторил все, что можно, проверки на null и время повара > 0 ставил Ну что ему нужно? Такие задачи только в депрессию вгоняют.
package com.javarush.task.task27.task2712;
import com.javarush.task.task27.task2712.ad.Advertisement;
import com.javarush.task.task27.task2712.ad.AdvertisementManager;
import com.javarush.task.task27.task2712.ad.NoVideoAvailableException;
import com.javarush.task.task27.task2712.kitchen.Order;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.List;
import java.util.Observable;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Tablet extends Observable {
final int number;
static private Logger logger = Logger.getLogger(Tablet.class.getName());
public Tablet(int number) {
this.number = number;
}
public Order createOrder() {
try {
Order order = new Order(this);
AdvertisementManager advertisementManager = new AdvertisementManager(order.getTotalCookingTime()*60);
try {
advertisementManager.processVideos();
} catch (NoVideoAvailableException e) {
logger.log(Level.INFO, "No video is available for the order " + order);
}
ConsoleHelper.writeMessage(order.toString());
if (!order.isEmpty()) { //Если в заказе отсутствуют блюда, он не должен быть отправлен повару.
setChanged();
notifyObservers(order);
}
return order;
} catch (IOException e) {
logger.log(Level.SEVERE, "Console is unavailable.");
}
return null;
}
@Override
public String toString() {
return "Tablet{" +
"number=" + number +
'}';
}
}