/**
  * @param e - Field to be handled
  * @param value - may be null to state that field should be emptied
  * @param be - BibTeXEntry to be handled
  * @param ce - Filled with undo info (if necessary)
  * @param nullFieldIfValueIsTheSame - true: field is nulled if value is the same than the current
  *     value in be
  */
 public static void updateField(
     SpecialField e,
     String value,
     BibtexEntry be,
     NamedCompound ce,
     boolean nullFieldIfValueIsTheSame) {
   Util.updateField(be, e.getFieldName(), value, ce, nullFieldIfValueIsTheSame);
   // we cannot use "value" here as updateField has side effects: "nullFieldIfValueIsTheSame" nulls
   // the field if value is the same
   SpecialFieldsUtils.exportFieldToKeywords(e, be.getField(e.getFieldName()), be, ce);
 }
 private static void importKeywordsForField(
     ArrayList<String> keywordList, SpecialField c, BibtexEntry be, NamedCompound nc) {
   List<String> values = c.getKeyWords();
   String newValue = null;
   for (String val : values) {
     if (keywordList.contains(val)) {
       newValue = val;
       break;
     }
   }
   Util.updateField(be, c.getFieldName(), newValue, nc);
 }
 private static void exportFieldToKeywords(SpecialField e, BibtexEntry be, NamedCompound ce) {
   SpecialFieldsUtils.exportFieldToKeywords(e, be.getField(e.getFieldName()), be, ce);
 }