- public Collection<Network> connectedNetworks() {
- return Lists.newArrayList(Optional.presentInstances(FluentIterable.from(networkConnections.values()).transform(new Function<Connection, Optional<Network>>() {
- @Override
- public Optional<Network> apply(Connection connection) {
- return getNetwork(connection);
- }
- })));
+ public Collection<ConnectedNetwork> connectedNetworks() {
+ return networkConnections.entrySet().stream().map((entry) -> {
+ Network network = entry.getKey();
+ Collection<Bot> bots = networkBots.row(network).values();
+ int packCount = bots.stream().mapToInt((bot) -> bot.packs().size()).reduce((a, b) -> a + b).orElse(0);
+ return new ConnectedNetwork(network, entry.getValue().hostname(),
+ entry.getValue().port(), entry.getValue().nickname(),
+ channels.stream()
+ .filter((channel) -> channel.network()
+ .equals(network))
+ .map(Channel::name)
+ .collect(Collectors.<String>toList()),
+ extraChannels.stream()
+ .filter((channel) -> channel.network()
+ .equals(network))
+ .map(Channel::name)
+ .collect(Collectors.<String>toList()),
+ bots.size(), packCount);
+ }).collect(Collectors.<ConnectedNetwork>toList());