private void storeTo(HL7Application hl7App, Preferences prefs, List<Connection> devConns) {
    PreferencesUtils.storeNotEmpty(
        prefs, "hl7AcceptedSendingApplication", hl7App.getAcceptedSendingApplications());
    PreferencesUtils.storeNotEmpty(
        prefs, "hl7AcceptedMessageType", hl7App.getAcceptedMessageTypes());
    PreferencesUtils.storeNotNull(
        prefs, "hl7DefaultCharacterSet", hl7App.getHL7DefaultCharacterSet());
    PreferencesUtils.storeNotNull(prefs, "dicomInstalled", hl7App.getInstalled());
    PreferencesUtils.storeConnRefs(prefs, hl7App.getConnections(), devConns);

    for (PreferencesHL7ConfigurationExtension ext : extensions) ext.storeTo(hl7App, prefs);
  }
  private void storeDiffs(Preferences prefs, HL7Application a, HL7Application b) {
    PreferencesUtils.storeDiffConnRefs(
        prefs,
        a.getConnections(),
        a.getDevice().listConnections(),
        b.getConnections(),
        b.getDevice().listConnections());
    PreferencesUtils.storeDiff(
        prefs,
        "hl7AcceptedSendingApplication",
        a.getAcceptedSendingApplications(),
        b.getAcceptedSendingApplications());
    PreferencesUtils.storeDiff(
        prefs, "hl7AcceptedMessageType", a.getAcceptedMessageTypes(), b.getAcceptedMessageTypes());
    PreferencesUtils.storeDiff(
        prefs,
        "hl7DefaultCharacterSet",
        a.getHL7DefaultCharacterSet(),
        b.getHL7DefaultCharacterSet());
    PreferencesUtils.storeDiff(prefs, "dicomInstalled", a.getInstalled(), b.getInstalled());

    for (PreferencesHL7ConfigurationExtension ext : extensions) ext.storeDiffs(a, b, prefs);
  }