Project proj = workPrepare(files); UpdateJob uj = workExecute(proj); if (uj != null) uj.update();
if (files == null) { if (DEBUG) { System.out.println("No files to build"); } }  String findBugsHome = FindbugsPlugin.getFindBugsEnginePluginLocation(); if (DEBUG) { System.out.println("Looking for detectors in: " + findBugsHome); }   System.setProperty("findbugs.home", findBugsHome);  Project findBugsProject = new Project(); Iterator iter = files.iterator(); while (iter.hasNext()) {  IResource res = (IResource) iter.next();  if (Util.isJavaArtifact(res)) { res.deleteMarkers( FindBugsMarker.NAME, true, IResource.DEPTH_INFINITE); }  if (Util.isClassFile(res)) {  String fileName = res.getLocation().toOSString();  res.refreshLocal(IResource.DEPTH_INFINITE, null); if (DEBUG) { System.out.println( "Resource: " + fileName + ": in sync: " + res.isSynchronized(IResource.DEPTH_INFINITE)); } findBugsProject.addFile(fileName); } }  Reporter bugReporter = new Reporter(this.project, this.monitor, findBugsProject); bugReporter.setPriorityThreshold(Detector.LOW_PRIORITY);  String[] classPathEntries = createClassPathEntries();  for (int i = 0; i < classPathEntries.length; i++) { findBugsProject.addAuxClasspathEntry(classPathEntries[i]); }  FindBugs findBugs = new FindBugs(bugReporter, findBugsProject);   findBugs.setUserPreferences(this.userPrefs);  try {  findBugs.execute();   updateBugCollection(findBugsProject, bugReporter); } catch (InterruptedException e) { if (DEBUG) { e.printStackTrace(); }   } catch (RuntimeException e) { throw e; } catch (Exception e) { FindbugsPlugin.getDefault().logException(e, "Error performing FindBugs analysis"); }
	public void work(Collection files) throws CoreException {		Project proj = workPrepare(files);		UpdateJob uj = workExecute(proj);		if (uj != null) uj.update();	}