private static List<String> filterPlugins( final PersistencePreferencesBean prefs, final Collection<String> excludePlugins) { final List<String> result = new ArrayList<String>(); for (final String plugin : prefs.getPlugins()) { if (!excludePlugins.contains(plugin)) { result.add(plugin); } } return result; }
@Nullable public static PersistencePreferencesBean doImport( final Component owner, final Document document) { final Element profile = document.getRootElement(); final Element rules = profile.getChild("rules"); if (rules == null) { Messages.showErrorDialog( owner, "The file format is invalid. No rules element found.", "Invalid File"); return null; } final Map<String, Set<String>> detectorsShortNameByBugPatternType = createIndexDetectorsShortNameByBugPatternType(); final PersistencePreferencesBean ret = new PersistencePreferencesBean(); for (final Set<String> detectorsShortName : detectorsShortNameByBugPatternType.values()) { for (final String detectorShortName : detectorsShortName) { ret.getDetectors().put(detectorShortName, "false"); } } final List ruleList = rules.getChildren("rule"); for (final Object child : ruleList) { if (child instanceof Element) { final Element rule = (Element) child; final Element repositoryKey = rule.getChild("repositoryKey"); final Element key = rule.getChild("key"); if (repositoryKey != null && "findbugs".equals(repositoryKey.getValue()) && key != null) { final String bugPatternType = key.getValue(); final Set<String> detectorsShortName = detectorsShortNameByBugPatternType.get(bugPatternType); if (detectorsShortName != null) { for (final String detectorShortName : detectorsShortName) { ret.getDetectors().put(detectorShortName, "true"); } } else { LOGGER.warn("Unknown bug pattern type: " + bugPatternType); } } } } return ret; }