public static Note decodeToNote(Map m) throws GeneralException {

    String chid = TypeEncoder.getString(MessageFieldNames.chapterid, m);
    String chver = TypeEncoder.getString(MessageFieldNames.chapterversion, m);

    String cname = TypeEncoder.getString(MessageFieldNames.chaptername, m, false);

    // Create a fake chapter to hold the id/version.
    Chapter c = new Chapter();
    c.setId(chid);
    c.setVersion(chver);
    c.setName(cname);

    String cid = TypeEncoder.getString(MessageFieldNames.commentid, m);

    String text = TypeEncoder.getString(MessageFieldNames.text, m);

    Note n = new Note();

    n.setChapter(c);
    n.setDescription(text);

    // Need to also setup the summary.
    n.setSummaryFromDescription();

    n.setId(cid);

    n.setDealtWith(TypeEncoder.getDate(MessageFieldNames.date, m, false));
    n.setPosition(TypeEncoder.getInt(MessageFieldNames.start, m));

    int end = TypeEncoder.getInt(MessageFieldNames.end, m, false);

    if (end > -1) {

      n.setEndPosition(end);
    }

    return n;
  }
  public static Date getDate(String field, Map data) throws GeneralException {

    return TypeEncoder.getDate(field, data, true);
  }