private static BugRanker getCoreRanker() { Plugin corePlugin = PluginLoader.getCorePluginLoader().getPlugin(); return corePlugin.getBugRanker(); }
private static int findRankUnknownPlugin(BugPattern pattern) { List<BugRanker> rankers = new ArrayList<>(); pluginLoop: for (Plugin plugin : Plugin.getAllPlugins()) { if (plugin.isCorePlugin()) { continue; } if (false) { rankers.add(plugin.getBugRanker()); continue pluginLoop; } for (DetectorFactory df : plugin.getDetectorFactories()) { if (df.getReportedBugPatterns().contains(pattern)) { if (PLUGIN_DEBUG) { System.out.println("Bug rank match " + plugin + " " + df + " for " + pattern); } rankers.add(plugin.getBugRanker()); continue pluginLoop; } } if (PLUGIN_DEBUG) { System.out.println("plugin " + plugin + " doesn't match " + pattern); } } rankers.add(getCoreRanker()); return rankBugPattern(pattern, rankers.toArray(new BugRanker[rankers.size()])); }
public static int findRank(BugPattern pattern, @CheckForNull DetectorFactory detectorFactory) { boolean haveCache = Global.getAnalysisCache() != null; if (haveCache) { Integer cachedResult = rankForBugPattern.get().get(pattern); if (cachedResult != null) { return cachedResult; } } int rank; if (detectorFactory == null) { rank = findRankUnknownPlugin(pattern); } else { Plugin plugin = detectorFactory.getPlugin(); BugRanker pluginRanker = plugin.getBugRanker(); BugRanker coreRanker = getCoreRanker(); if (pluginRanker == coreRanker) { rank = rankBugPattern(pattern, coreRanker); } else { rank = rankBugPattern(pattern, pluginRanker, coreRanker); } } if (haveCache) { rankForBugPattern.get().put(pattern, rank); } return rank; }
private static BugRanker getCoreRanker() { Plugin corePlugin = PluginLoader.getCorePluginLoader().getPlugin(); return corePlugin.getBugRanker(); }
private static int findRankUnknownPlugin(BugPattern pattern) { List<BugRanker> rankers = new ArrayList<BugRanker>(); pluginLoop: for (Plugin plugin : Plugin.getAllPlugins()) { if (plugin.isCorePlugin()) { continue; } if (false) { rankers.add(plugin.getBugRanker()); continue pluginLoop; } for (DetectorFactory df : plugin.getDetectorFactories()) { if (df.getReportedBugPatterns().contains(pattern)) { if (PLUGIN_DEBUG) { System.out.println("Bug rank match " + plugin + " " + df + " for " + pattern); } rankers.add(plugin.getBugRanker()); continue pluginLoop; } } if (PLUGIN_DEBUG) { System.out.println("plugin " + plugin + " doesn't match " + pattern); } } rankers.add(getCoreRanker()); return rankBugPattern(pattern, rankers.toArray(new BugRanker[rankers.size()])); }
public static int findRank(BugPattern pattern, @CheckForNull DetectorFactory detectorFactory) { boolean haveCache = Global.getAnalysisCache() != null; if (haveCache) { Integer cachedResult = rankForBugPattern.get().get(pattern); if (cachedResult != null) { return cachedResult; } } int rank; if (detectorFactory == null) { rank = findRankUnknownPlugin(pattern); } else { Plugin plugin = detectorFactory.getPlugin(); BugRanker pluginRanker = plugin.getBugRanker(); BugRanker coreRanker = getCoreRanker(); if (pluginRanker == coreRanker) { rank = rankBugPattern(pattern, coreRanker); } else { rank = rankBugPattern(pattern, pluginRanker, coreRanker); } } if (haveCache) { rankForBugPattern.get().put(pattern, rank); } return rank; }