package dslab.monitoring; import dslab.routing.Address; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; import java.util.Map; import static java.util.stream.Collectors.counting; import static java.util.stream.Collectors.groupingBy; /** * Implements the requirements for monitoring servers as specified in assignment 1, sec. 2.6 */ public class MonitoringServiceImpl { private final List reports = new ArrayList<>(); public void save(MonitoringReport report) { reports.add(report); } public Map addresses() { return reports.stream().collect(groupingBy(r -> r.getRecipient(), counting())); } public Map servers() { return reports.stream().collect(groupingBy(r -> r.getServer(), counting())); } }