@Override
 protected List<ModificationItem> storeDiffs(Device a, Device b, List<ModificationItem> mods) {
   super.storeDiffs(a, b, mods);
   storeDiff(
       mods,
       "dcmLimitOpenAssociations",
       a.getLimitOpenAssociations(),
       b.getLimitOpenAssociations());
   storeDiff(mods, "dcmTrustStoreURL", a.getTrustStoreURL(), b.getTrustStoreURL());
   storeDiff(mods, "dcmTrustStoreType", a.getTrustStoreType(), b.getTrustStoreType());
   storeDiff(mods, "dcmTrustStorePin", a.getTrustStorePin(), b.getTrustStorePin());
   storeDiff(
       mods,
       "dcmTrustStorePinProperty",
       a.getTrustStorePinProperty(),
       b.getTrustStorePinProperty());
   storeDiff(mods, "dcmKeyStoreURL", a.getKeyStoreURL(), b.getKeyStoreURL());
   storeDiff(mods, "dcmKeyStoreType", a.getKeyStoreType(), b.getKeyStoreType());
   storeDiff(mods, "dcmKeyStorePin", a.getKeyStorePin(), b.getKeyStorePin());
   storeDiff(
       mods, "dcmKeyStorePinProperty", a.getKeyStorePinProperty(), b.getKeyStorePinProperty());
   storeDiff(mods, "dcmKeyStoreKeyPin", a.getKeyStoreKeyPin(), b.getKeyStoreKeyPin());
   storeDiff(
       mods,
       "dcmKeyStoreKeyPinProperty",
       a.getKeyStoreKeyPinProperty(),
       b.getKeyStoreKeyPinProperty());
   return mods;
 }
 @Override
 protected List<ModificationItem> storeDiffs(
     TransferCapability a, TransferCapability b, List<ModificationItem> mods) {
   super.storeDiffs(a, b, mods);
   storeDiffs(a.getQueryOptions(), b.getQueryOptions(), mods);
   storeDiffs(a.getStorageOptions(), b.getStorageOptions(), mods);
   return mods;
 }
 @Override
 protected List<ModificationItem> storeDiffs(
     ApplicationEntity a, ApplicationEntity b, String deviceDN, List<ModificationItem> mods) {
   super.storeDiffs(a, b, deviceDN, mods);
   storeDiff(
       mods,
       "dcmAcceptedCallingAETitle",
       a.getAcceptedCallingAETitles(),
       b.getAcceptedCallingAETitles());
   return mods;
 }
 @Override
 protected List<ModificationItem> storeDiffs(
     Connection a, Connection b, List<ModificationItem> mods) {
   super.storeDiffs(a, b, mods);
   storeDiff(
       mods,
       "dcmProtocol",
       StringUtils.nullify(a.getProtocol(), Protocol.DICOM),
       StringUtils.nullify(b.getProtocol(), Protocol.DICOM));
   storeDiff(mods, "dcmHTTPProxy", a.getHttpProxy(), b.getHttpProxy());
   storeDiff(mods, "dcmBlacklistedHostname", a.getBlacklist(), b.getBlacklist());
   storeDiff(mods, "dcmTCPBacklog", a.getBacklog(), b.getBacklog(), Connection.DEF_BACKLOG);
   storeDiff(
       mods,
       "dcmTCPConnectTimeout",
       a.getConnectTimeout(),
       b.getConnectTimeout(),
       Connection.NO_TIMEOUT);
   storeDiff(
       mods,
       "dcmAARQTimeout",
       a.getRequestTimeout(),
       b.getRequestTimeout(),
       Connection.NO_TIMEOUT);
   storeDiff(
       mods, "dcmAAACTimeout", a.getAcceptTimeout(), b.getAcceptTimeout(), Connection.NO_TIMEOUT);
   storeDiff(
       mods,
       "dcmARRPTimeout",
       a.getReleaseTimeout(),
       b.getReleaseTimeout(),
       Connection.NO_TIMEOUT);
   storeDiff(
       mods,
       "dcmResponseTimeout",
       a.getResponseTimeout(),
       b.getResponseTimeout(),
       Connection.NO_TIMEOUT);
   storeDiff(
       mods,
       "dcmRetrieveTimeout",
       a.getRetrieveTimeout(),
       b.getRetrieveTimeout(),
       Connection.NO_TIMEOUT);
   storeDiff(
       mods, "dcmIdleTimeout", a.getIdleTimeout(), b.getIdleTimeout(), Connection.NO_TIMEOUT);
   storeDiff(
       mods,
       "dcmTCPCloseDelay",
       a.getSocketCloseDelay(),
       b.getSocketCloseDelay(),
       Connection.DEF_SOCKETDELAY);
   storeDiff(
       mods,
       "dcmTCPSendBufferSize",
       a.getSendBufferSize(),
       b.getSendBufferSize(),
       Connection.DEF_BUFFERSIZE);
   storeDiff(
       mods,
       "dcmTCPReceiveBufferSize",
       a.getReceiveBufferSize(),
       b.getReceiveBufferSize(),
       Connection.DEF_BUFFERSIZE);
   storeDiff(mods, "dcmTCPNoDelay", a.isTcpNoDelay(), b.isTcpNoDelay(), true);
   storeDiff(
       mods,
       "dcmTLSProtocol",
       a.isTls() ? a.getTlsProtocols() : StringUtils.EMPTY_STRING,
       b.isTls() ? b.getTlsProtocols() : StringUtils.EMPTY_STRING);
   storeDiff(
       mods,
       "dcmTLSNeedClientAuth",
       !a.isTls() || a.isTlsNeedClientAuth(),
       !a.isTls() || a.isTlsNeedClientAuth(),
       true);
   storeDiff(
       mods,
       "dcmSendPDULength",
       a.getSendPDULength(),
       b.getSendPDULength(),
       Connection.DEF_MAX_PDU_LENGTH);
   storeDiff(
       mods,
       "dcmReceivePDULength",
       a.getReceivePDULength(),
       b.getReceivePDULength(),
       Connection.DEF_MAX_PDU_LENGTH);
   storeDiff(
       mods,
       "dcmMaxOpsPerformed",
       a.getMaxOpsPerformed(),
       b.getMaxOpsPerformed(),
       Connection.SYNCHRONOUS_MODE);
   storeDiff(
       mods,
       "dcmMaxOpsInvoked",
       a.getMaxOpsInvoked(),
       b.getMaxOpsInvoked(),
       Connection.SYNCHRONOUS_MODE);
   storeDiff(mods, "dcmPackPDV", a.isPackPDV(), b.isPackPDV(), true);
   return mods;
 }