1 19 20 package edu.umd.cs.findbugs.tools.html; 21 22 import java.io.IOException ; 23 import java.util.Collection ; 24 import java.util.HashSet ; 25 import java.util.Iterator ; 26 27 import edu.umd.cs.findbugs.BugPattern; 28 import edu.umd.cs.findbugs.DetectorFactory; 29 import edu.umd.cs.findbugs.DetectorFactoryCollection; 30 import edu.umd.cs.findbugs.I18N; 31 32 public abstract class PrintBugDescriptions { 33 public void print() throws IOException { 34 DetectorFactoryCollection factories = DetectorFactoryCollection.instance(); 36 37 Collection <BugPattern> enabledPatternSet = new HashSet <BugPattern>(); 39 for (Iterator <DetectorFactory> i = factories.factoryIterator(); i.hasNext(); ) { 40 DetectorFactory factory = i.next(); 41 if (isEnabled(factory)) 42 enabledPatternSet.addAll(factory.getReportedBugPatterns()); 43 } 44 45 prologue(); 46 47 Iterator <BugPattern> i = I18N.instance().bugPatternIterator(); 48 while (i.hasNext()) { 49 BugPattern bugPattern = i.next(); 50 if (!enabledPatternSet.contains(bugPattern)) 51 continue; 52 emit(bugPattern); 53 } 54 55 epilogue(); 56 } 57 58 protected boolean isEnabled(DetectorFactory factory) { 59 return factory.isDefaultEnabled(); 60 } 61 62 protected abstract void prologue() throws IOException ; 63 64 protected abstract void emit(BugPattern bugPattern) throws IOException ; 65 66 protected abstract void epilogue() throws IOException ; 67 } 68 69 | Popular Tags |