@Override
public void process(long sid, ObjectNode payload) {
log.debug("sid={}, payload ={}", sid, payload);
String id = string(payload, ID, "(none)");
Alarm alarm = AlarmServiceUtil.lookupAlarm(AlarmId.alarmId(Long.parseLong(id)));
ObjectNode rootNode = objectNode();
ObjectNode data = objectNode();
rootNode.set(DETAILS, data);
if (alarm == null) {
rootNode.put(RESULT, "Item with id '" + id + "' not found");
log.warn("attempted to get item detail for id '{}'", id);
} else {
rootNode.put(RESULT, "Found item with id '" + id + "'");
data.put(ID, alarm.id().fingerprint());
data.put(DESCRIPTION, alarm.description());
data.put(DEVICE_ID_STR, alarm.deviceId().toString());
data.put(SOURCE, alarm.source().toString());
long timeRaised = alarm.timeRaised();
data.put(TIME_RAISED,
formatTime(timeRaised)
);
data.put(TIME_UPDATED, formatTime(alarm.timeUpdated()));
data.put(TIME_CLEARED, formatTime(alarm.timeCleared()));
data.put(SEVERITY, alarm.severity().toString());
}
log.debug("send ={}", rootNode);
sendMessage(ALARM_TABLE_DETAIL_RESP, 0, rootNode);
}
}