@SuppressWarnings("rawtypes")
private Collection<Message> createMessages(ResultSet rs) throws SQLException {
Collection<Message> messages = new ArrayList<Message>();
while (rs.next()) {
Message message = new Message();
message.setDirection(getMessageDirection());
message.setId(rs.getLong("id"));
message.setReference(rs.getString("reference"));
message.setSource(rs.getString("source"));
message.setDestination(rs.getString("destination"));
message.setStatus(rs.getByte("status"));
message.setProperty("to", rs.getString("smsc_to"));
message.setProperty("from", rs.getString("smsc_from"));
message.setProperty("text", rs.getString("smsc_text"));
message.setProperty("sequenceNumber", rs.getInt("smsc_sequencenumber"));
message.setProperty("messageId", rs.getString("smsc_messageid"));
message.setProperty("commandStatus", rs.getInt("smsc_commandstatus"));
message.setProperty("receiptStatus", rs.getString("smsc_receiptstatus"));
message.setProperty("receiptTime", rs.getTimestamp("smsc_receipttime"));
String jsonString = rs.getString("other");
if (jsonString != null && !"".equals(jsonString)) {
try {
JSONObject json = new JSONObject(jsonString);
Iterator iterator = json.keys();
while (iterator.hasNext()) {
String key = (String) iterator.next();
message.setProperty(key, json.get(key));
}
} catch (JSONException e) {
log.error("JSONException while retreiving string: " + jsonString + ": " + e.getMessage(), e);
}
}
message.setCreationTime(rs.getTimestamp("creation_time"));
message.setModificationTime(rs.getTimestamp("modification_time"));
messages.add(message);
}
return messages;