private static void applyDetectorsAndPluginsTo()

in src/main/java/org/jetbrains/plugins/spotbugs/gui/preferences/LegacyAbstractSettingsConverter.java [167:217]


	private static void applyDetectorsAndPluginsTo(@NotNull final PersistencePreferencesBean from, @NotNull final AbstractSettings to) {
		final LegacyPluginLoaderImpl legacyPluginLoader = new LegacyPluginLoaderImpl();
		legacyPluginLoader.load(
				from.getPlugins(),
				from.getDisabledUserPluginIds(),
				from.getEnabledBundledPluginIds(),
				from.getDisabledBundledPluginIds()
		);

		final Map<String, Map<String, Boolean>> detectorDefaultEnabled = new HashMap<>();
		for (final DetectorFactory detector : DetectorFactoryCollection.instance().getFactories()) {
			detectorDefaultEnabled.computeIfAbsent(detector.getPlugin().getPluginId(), k -> new HashMap<>())
					.put(detector.getShortName(), detector.isDefaultEnabled());
		}

		// core detectors
		apply(from.getDetectors(), to.detectors, detectorDefaultEnabled.get(FindBugsPluginConstants.FINDBUGS_CORE_PLUGIN_ID));

		// bundled plugins and detectors
		for (final String bundledPluginId : new String[]{
				Plugins.AndroidFindbugs.id,
				Plugins.fb_contrib.id,
				Plugins.findsecbugs_plugin.id
		}) {
			final boolean enabled = from.getEnabledBundledPluginIds() != null && from.getEnabledBundledPluginIds().contains(bundledPluginId);
			final PluginSettings pluginSettings = new PluginSettings();
			pluginSettings.id = bundledPluginId;
			pluginSettings.enabled = enabled;
			pluginSettings.bundled = true;
			apply(from.getDetectors(), pluginSettings.detectors, detectorDefaultEnabled.get(bundledPluginId));
			if (enabled || !pluginSettings.detectors.isEmpty()) {
				to.plugins.add(pluginSettings);
			}
		}

		// user plugins and detectors
		final List<String> plugins = from.getPlugins();
		if (plugins != null && !plugins.isEmpty()) {
			for (final String pluginUrl : plugins) {
				final String pluginId = legacyPluginLoader.userPluginIdByPluginUrl.get(pluginUrl);
				if (!StringUtil.isEmptyOrSpaces(pluginId)) {
					final PluginSettings pluginSettings = new PluginSettings();
					pluginSettings.id = pluginId;
					pluginSettings.enabled = from.getDisabledUserPluginIds() == null || !from.getDisabledUserPluginIds().contains(pluginId);
					pluginSettings.url = pluginUrl;
					apply(from.getDetectors(), pluginSettings.detectors, detectorDefaultEnabled.get(pluginId));
					to.plugins.add(pluginSettings);
				}
			}
		}
	}