/** * */ package vnet.sms.gateway.server.framework.internal.shell; import static org.apache.commons.lang.Validate.notNull; import vnet.sms.common.shell.springshell.command.CliCommand; import vnet.sms.common.shell.springshell.command.CommandMarker; import vnet.sms.gateway.nettysupport.ChannelStatistics; import vnet.sms.gateway.nettysupport.ChannelStatisticsGroup; /** * @author obergner * */ public class ListChannelsCommand implements CommandMarker { private final ChannelStatisticsGroup allOpenChannels; public ListChannelsCommand(final ChannelStatisticsGroup allOpenChannels) { notNull(allOpenChannels, "Argument 'allOpenChannels' must not be null"); this.allOpenChannels = allOpenChannels; } @CliCommand(value = { "list-channels", "list" }, help = "List all open channels") public String list() { final StringBuilder list = new StringBuilder(); for (final ChannelStatistics channel : this.allOpenChannels) { list.append(String.format("%d %s %s %d %d%n", channel.getId() .value(), channel.toString(), channel.getConnectedSince() .value(), channel.getConnectTimeoutMillis().value(), channel.getTotalNumberOfReceivedBytes().count())); } return list.toString(); } }