public IssueChangeNotification setIssue(DefaultIssue issue) {
   setFieldValue("key", issue.key());
   setFieldValue("reporter", issue.reporter());
   setFieldValue("assignee", issue.assignee());
   setFieldValue("message", issue.message());
   setFieldValue("componentKey", issue.componentKey());
   FieldDiffs currentChange = issue.currentChange();
   if (currentChange != null) {
     for (Map.Entry<String, FieldDiffs.Diff> entry : currentChange.diffs().entrySet()) {
       String type = entry.getKey();
       FieldDiffs.Diff diff = entry.getValue();
       setFieldValue("old." + type, neverEmptySerializableToString(diff.oldValue()));
       setFieldValue("new." + type, neverEmptySerializableToString(diff.newValue()));
     }
   }
   return this;
 }