Метод printActiveVideoSet в классе DirectorTablet должен быть реализован в соответствии с условием задачи.
Вот так добываются данные (class StatisticAdvertisementManager):
public List<Advertisement> getVideoSet(boolean active) {
return storage.list().stream()
.filter(a -> a.getHits() > 0 == active)
.sorted((o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()))
.collect(Collectors.toList());
}
Вот он так они выводятся (class DirectorTablet):
public void printActiveVideoSet() {
StatisticAdvertisementManager.getInstance()
.getVideoSet(true).forEach(a -> ConsoleHelper.writeMessage( String.format("%s - %d", a.getName(), a.getHits()) ));
ConsoleHelper.writeMessage("");
}
Вывод соответствует. Подскажите, люди добрые, что не так.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 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());
public Tablet(int number) {
this.number = number;
}
public Order createOrder() {
Order order = null;
try {
order = new Order(this);
} catch (IOException e) {
logger.log(Level.SEVERE, "Console is unavailable.");
}
if (order == null) return null;
ConsoleHelper.writeMessage(order.toString());
try {
new AdvertisementManager(order.getTotalCookingTime() * 60).processVideos();
} catch (NoVideoAvailableException e) {
logger.log(Level.INFO, "No video is available for the order " + order);
}
if (!order.isEmpty()) {
setChanged();
notifyObservers(order);
}
return order;
}
@Override
public String toString() {
return "Tablet{" +
"number=" + number +
'}';
}
}
