private List<WebSocketChannelDTO> buildChannelDTOs(ResultSet rs) throws SQLException { ArrayList<WebSocketChannelDTO> channels = new ArrayList<>(); try { while (rs.next()) { WebSocketChannelDTO channel = new WebSocketChannelDTO(); channel.id = rs.getInt("channel_id"); channel.host = rs.getString("host"); channel.port = rs.getInt("port"); channel.url = rs.getString("url"); channel.startTimestamp = rs.getTimestamp("start_timestamp").getTime(); Time endTs = rs.getTime("end_timestamp"); channel.endTimestamp = (endTs != null) ? endTs.getTime() : null; channel.historyId = rs.getInt("history_id"); channels.add(channel); } } finally { rs.close(); } channels.trimToSize(); return channels; }
private WebSocketChannelDTO getChannel(int channelId) throws SQLException, DatabaseException { if (!channelCache.containsKey(channelId)) { WebSocketChannelDTO criteria = new WebSocketChannelDTO(); criteria.id = channelId; List<WebSocketChannelDTO> channels = getChannels(criteria); if (channels.size() == 1) { channelCache.put(channelId, channels.get(0)); } else { throw new SQLException("Channel '" + channelId + "' not found!"); } } return (WebSocketChannelDTO) channelCache.get(channelId); }