Уже не знаю, что и делать, все перепроверил(
Даже заменял свой код в main и в OrderManager, всё равно не работает. Также не понимаю, почему в правильном решении работает directorTablet.printCookWorkloading(). У меня он выбрасывает исключение, ведь события о заказах регистрируются в startCookingOrder, который нигде не вызывается. Помогите
package com.javarush.task.task27.task2712;
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 com.javarush.task.task27.task2712.kitchen.TestOrder;
import com.javarush.task.task27.task2712.statistic.StatisticManager;
import com.javarush.task.task27.task2712.statistic.event.VideoSelectedEventDataRow;
import java.io.IOException;
import java.util.Observable;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Tablet extends Observable {
private final int number;
private static Logger logger = Logger.getLogger(Tablet.class.getName());
private AdvertisementManager advertisementManager;
public Tablet(int number) {
this.number = number;
}
public void createOrder() {
Order order = null;
try {
order = new Order(this);
processOrder(order);
try {
advertisementManager.processVideos();
} catch (NoVideoAvailableException e) {
logger.log(Level.INFO, "No video is available for the order " + order);
}
} catch (IOException e) {
logger.log(Level.SEVERE, "Console is unavailable.");
}
}
public void createTestOrder() {
TestOrder order = null;
try {
order = new TestOrder(this);
processOrder(order);
try {
advertisementManager.processVideos();
} catch (NoVideoAvailableException e) {
logger.log(Level.INFO, "No video is available for the order " + order);
}
} catch (IOException e) {
logger.log(Level.SEVERE, "Console is unavailable.");
}
}
private boolean processOrder(Order order) {
advertisementManager = new AdvertisementManager(order.getTotalCookingTime() * 60);
if (order.isEmpty())
return true;
ConsoleHelper.writeMessage(order.toString());
setChanged();
notifyObservers(order);
// queue.offer(order);
return false;
}
public int getNumber() {
return number;
}
@Override
public String toString() {
return "Tablet{" +
"number=" + number +
'}';
}
}