code: private void initDataUpgraders() {
          final Map<PortalDataKey, IDataUpgrader> dataUpgraderMap = new LinkedHashMap<>();
  
          for (final IDataUpgrader dataUpgrader : dataUpgraders) {
  
              try {
  
                  final Set<PortalDataKey> upgradeDataKeys = dataUpgrader.getSourceDataTypes();
                  for (final PortalDataKey upgradeDataKey : upgradeDataKeys) {
                      this.logger.debug(
                              "Registering IDataUpgrader for '{}' - {}",
                              upgradeDataKey,
                              dataUpgrader);
                      final IDataUpgrader existing =
                              dataUpgraderMap.put(upgradeDataKey, dataUpgrader);
                      if (existing != null) {
                          this.logger.warn(
                                  "Duplicate IDataUpgrader PortalDataKey for {} Replacing {} with {}",
                                  upgradeDataKey,
                                  existing,
                                  dataUpgrader);
                      }
                  }
  
              } catch (Exception exception) {
                  logger.error("Failed to register data upgrader {}.", dataUpgrader, exception);
              }
          }
  
          this.portalDataUpgraders = Collections.unmodifiableMap(dataUpgraderMap);
      }
docs: {@link IDataUpgrader} implementations to delegate upgrade operations to.