@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); } }