protected void addToTimeline(SystemEvent se) {
    Map<String, String> map = new HashMap<String, String>();

    putContext(map, CTX_PREFIX, se.getEventContext());

    map.put(DATE, getDateFormat().format(se.getEventDate()));

    map.put(ACTION, se.getAction());

    map.put(MESSAGE, se.getMessage());

    addToTimeline(map, SYSTEM_EVENT_TYPE, se.getAction());
  }
  protected List<SystemEvent> getSesFromMaps(TimelineResult data) {
    List<SystemEvent> result = new ArrayList<SystemEvent>();

    for (TimelineRecord record : data) {
      Map<String, String> map = record.getData();

      HashMap<String, Object> ctx = new HashMap<String, Object>();

      for (String key : map.keySet()) {
        if (key.startsWith(CTX_PREFIX)) {
          ctx.put(key.substring(4), map.get(key));
        }
      }

      SystemEvent se = new SystemEvent(getEventDate(map), map.get(ACTION), map.get(MESSAGE));

      se.addEventContext(ctx);

      result.add(se);
    }

    return result;
  }