1 19 20 package edu.umd.cs.findbugs; 21 22 import java.util.ArrayList ; 23 import java.util.Iterator ; 24 25 import edu.umd.cs.findbugs.plan.DetectorOrderingConstraint; 26 27 36 public class Plugin { 37 private String pluginId; 38 private String provider; 39 private String website; 40 private String shortDescription; 41 private ArrayList <DetectorFactory> detectorFactoryList; 42 private ArrayList <BugPattern> bugPatternList; 43 private ArrayList <BugCode> bugCodeList; 44 private boolean enabled; 45 46 private ArrayList <DetectorOrderingConstraint> interPassConstraintList; 48 private ArrayList <DetectorOrderingConstraint> intraPassConstraintList; 49 50 56 public Plugin(String pluginId) { 57 this.pluginId = pluginId; 58 this.detectorFactoryList = new ArrayList <DetectorFactory>(); 59 this.bugPatternList = new ArrayList <BugPattern>(); 60 this.bugCodeList = new ArrayList <BugCode>(); 61 this.interPassConstraintList = new ArrayList <DetectorOrderingConstraint>(); 62 this.intraPassConstraintList = new ArrayList <DetectorOrderingConstraint>(); 63 } 64 65 70 public void setEnabled(boolean enabled) { 71 this.enabled = enabled; 72 } 73 74 79 public boolean isEnabled() { 80 return enabled; 81 } 82 83 88 public void setProvider(String provider) { 89 this.provider = provider; 90 } 91 92 97 public String getProvider() { 98 return provider; 99 } 100 101 106 public void setWebsite(String website) { 107 this.website = website; 108 } 109 110 115 public String getWebsite() { 116 return website; 117 } 118 119 124 public void setShortDescription(String shortDescription) { 125 this.shortDescription = shortDescription; 126 } 127 128 134 public String getShortDescription() { 135 return shortDescription; 136 } 137 138 143 public void addDetectorFactory(DetectorFactory factory) { 144 detectorFactoryList.add(factory); 145 } 146 147 152 public void addBugPattern(BugPattern bugPattern) { 153 bugPatternList.add(bugPattern); 154 } 155 156 161 public void addBugCode(BugCode bugCode) { 162 bugCodeList.add(bugCode); 163 } 164 165 170 public void addInterPassOrderingConstraint(DetectorOrderingConstraint constraint) { 171 interPassConstraintList.add(constraint); 172 } 173 174 179 public void addIntraPassOrderingConstraint(DetectorOrderingConstraint constraint) { 180 intraPassConstraintList.add(constraint); 181 } 182 183 189 public DetectorFactory getFactoryByShortName(final String shortName) { 190 return chooseFactory(new FactoryChooser() { 191 public boolean choose(DetectorFactory factory) { 192 return factory.getShortName().equals(shortName); 193 } 194 }); 195 } 196 197 203 public DetectorFactory getFactoryByFullName(final String fullName) { 204 return chooseFactory(new FactoryChooser() { 205 public boolean choose(DetectorFactory factory) { 206 return factory.getFullName().equals(fullName); 207 } 208 }); 209 } 210 211 216 public Iterator <DetectorFactory> detectorFactoryIterator() { 217 return detectorFactoryList.iterator(); 218 } 219 220 225 public Iterator <BugPattern> bugPatternIterator() { 226 return bugPatternList.iterator(); 227 } 228 229 234 public Iterator <BugCode> bugCodeIterator() { 235 return bugCodeList.iterator(); 236 } 237 238 241 public Iterator <DetectorOrderingConstraint> interPassConstraintIterator() { 242 return interPassConstraintList.iterator(); 243 } 244 245 248 public Iterator <DetectorOrderingConstraint> intraPassConstraintIterator() { 249 return intraPassConstraintList.iterator(); 250 } 251 252 255 public String getPluginId() { 256 return pluginId; 257 } 258 259 private interface FactoryChooser { 260 public boolean choose(DetectorFactory factory); 261 } 262 263 private DetectorFactory chooseFactory(FactoryChooser chooser) { 264 for (Iterator <DetectorFactory> i = detectorFactoryIterator(); i.hasNext(); ) { 265 DetectorFactory factory = i.next(); 266 if (chooser.choose(factory)) 267 return factory; 268 } 269 return null; 270 } 271 } 272 273 | Popular Tags |