public static Map<String, String> convert(Map<String, Object> settings) { return Settings.convert(settings, SETTINGS); }
public static Set<String> upgrade(int version, Map<String, Object> validatedSettings) { return Settings.upgrade(version, UPGRADERS, SETTINGS, validatedSettings); }
static Map<String, Object> validate(int version, Map<String, String> importedSettings, boolean useDefaultValues) { return Settings.validate(version, SETTINGS, importedSettings, useDefaultValues); }
private static Set<String> upgradeSettingsGeneric(Map<String, TreeMap<Integer, SettingsDescription>> settings, Map<String, Object> validatedSettingsMutable, Set<String> deletedSettingsMutable, int toVersion) { for (Entry<String, TreeMap<Integer, SettingsDescription>> versions : settings.entrySet()) { String settingName = versions.getKey(); TreeMap<Integer, SettingsDescription> versionedSettings = versions.getValue(); boolean isNewlyAddedSetting = versionedSettings.firstKey() == toVersion; if (isNewlyAddedSetting) { boolean wasHandledByCustomUpgrader = validatedSettingsMutable.containsKey(settingName); if (wasHandledByCustomUpgrader) { continue; } SettingsDescription setting = versionedSettings.get(toVersion); if (setting == null) { throw new AssertionError("First version of a setting must be non-null!"); } upgradeSettingInsertDefault(validatedSettingsMutable, settingName, setting); } Integer highestVersion = versionedSettings.lastKey(); boolean isRemovedSetting = (highestVersion == toVersion && versionedSettings.get(highestVersion) == null); if (isRemovedSetting) { if (deletedSettingsMutable == null) { deletedSettingsMutable = new HashSet<>(); } upgradeSettingRemove(validatedSettingsMutable, deletedSettingsMutable, settingName); } } return deletedSettingsMutable; }
/** * Upgrade settings using the settings structure and/or special upgrade code. * * @param version * The content version of the settings in {@code validatedSettingsMutable}. * @param customUpgraders * A map of {@link SettingsUpgrader}s for nontrivial settings upgrades. * @param settings * The structure describing the different settings, possibly containing multiple * versions. * @param validatedSettingsMutable * The settings as returned by {@link Settings#validate(int, Map, Map, boolean)}. * This map is modified and contains the upgraded settings when this method returns. * * @return A set of setting names that were removed during the upgrade process or {@code null} * if none were removed. */ public static Set<String> upgrade(int version, Map<Integer, SettingsUpgrader> customUpgraders, Map<String, TreeMap<Integer, SettingsDescription>> settings, Map<String, Object> validatedSettingsMutable) { Set<String> deletedSettings = null; for (int toVersion = version + 1; toVersion <= VERSION; toVersion++) { if (customUpgraders.containsKey(toVersion)) { SettingsUpgrader upgrader = customUpgraders.get(toVersion); deletedSettings = upgrader.upgrade(validatedSettingsMutable); } deletedSettings = upgradeSettingsGeneric(settings, validatedSettingsMutable, deletedSettings, toVersion); } return deletedSettings; }
public static Map<String, String> convert(Map<String, Object> settings) { return Settings.convert(settings, SETTINGS); }
public static Set<String> upgrade(int version, Map<String, Object> validatedSettings) { return Settings.upgrade(version, UPGRADERS, SETTINGS, validatedSettings); }
static Map<String, Object> validate(int version, Map<String, String> importedSettings, boolean useDefaultValues) { return Settings.validate(version, SETTINGS, importedSettings, useDefaultValues); }
public static Map<String, String> convert(Map<String, Object> settings) { return Settings.convert(settings, SETTINGS); }
public static Set<String> upgrade(int version, Map<String, Object> validatedSettings) { return Settings.upgrade(version, UPGRADERS, SETTINGS, validatedSettings); }
static Map<String, Object> validate(int version, Map<String, String> importedSettings, boolean useDefaultValues) { return Settings.validate(version, SETTINGS, importedSettings, useDefaultValues); }
public static Map<String, String> convert(Map<String, Object> settings) { return Settings.convert(settings, SETTINGS); }
public static Set<String> upgrade(int version, Map<String, Object> validatedSettings) { return Settings.upgrade(version, UPGRADERS, SETTINGS, validatedSettings); }
static Map<String, Object> validate(int version, Map<String, String> importedSettings) { return Settings.validate(version, SETTINGS, importedSettings, false); }