Class Project

java.lang.Object
edu.umd.cs.findbugs.Project
All Implemented Interfaces:
XMLWriteable, AutoCloseable

public class Project extends Object implements XMLWriteable, AutoCloseable

A project in the GUI. This consists of some number of Jar files to analyze for bugs, and optionally

  • some number of source directories, for locating the program's source code
  • some number of auxiliary classpath entries, for locating classes referenced by the program which the user doesn't want to analyze
  • some number of boolean options
Author:
David Hovemeyer
  • Field Details

  • Constructor Details

    • Project

      public Project()
      Create an anonymous project.
  • Method Details

    • getPluginStatus

      @CheckForNull public Boolean getPluginStatus(Plugin plugin)
    • setPluginStatusTrinary

      public void setPluginStatusTrinary(String pluginId, Boolean enabled)
    • getConfiguration

      public UserPreferences getConfiguration()
    • setConfiguration

      public void setConfiguration(@Nonnull UserPreferences configuration)
      Parameters:
      configuration - The configuration to set, non null
    • duplicate

      public Project duplicate()
      Return an exact copy of this Project.
    • getSourceFinder

      public SourceFinder getSourceFinder()
    • isGuiAvaliable

      public boolean isGuiAvaliable()
    • add

      public void add(Project project2)
      add information from project2 to this project
    • appendWithoutDuplicates

      public static <T> List<T> appendWithoutDuplicates(List<T> lst1, List<T> lst2)
    • setCurrentWorkingDirectory

      public void setCurrentWorkingDirectory(File f)
    • isModified

      public boolean isModified()
      Return whether or not this Project has unsaved modifications.
    • setModified

      public void setModified(boolean isModified)
      Set whether or not this Project has unsaved modifications.
    • addFile

      public boolean addFile(String fileName)
      Add a file to the project.
      Parameters:
      fileName - the file to add
      Returns:
      true if the file was added, or false if the file was already present
    • addSourceDirs

      public boolean addSourceDirs(Collection<String> sourceDirs)
      Add source directories to the project.
      Parameters:
      sourceDirs - The source directories to add. These can be either absolute paths or relative to any of the working directories in this project object.
      Returns:
      true if a source directory was added or false if all source directories were already present
    • addWorkingDir

      public boolean addWorkingDir(String dirName)
      Add a working directory to the project.
      Parameters:
      dirName - the directory to add
      Returns:
      true if the working directory was added, or false if the working directory was already present
    • getFileCount

      public int getFileCount()
      Get the number of files in the project.
      Returns:
      the number of files in the project
    • getFile

      public String getFile(int num)
      Get the given file in the list of project files.
      Parameters:
      num - the number of the file in the list of project files
      Returns:
      the name of the file
    • removeFile

      public void removeFile(int num)
      Remove file at the given index in the list of project files
      Parameters:
      num - index of the file to remove in the list of project files
    • getFileList

      public List<String> getFileList()
      Get the list of files, directories, and zip files in the project.
    • getNumSourceDirs

      public int getNumSourceDirs()
      Get the number of source directories in the project.
      Returns:
      the number of source directories in the project
    • getSourceDir

      public String getSourceDir(int num)
      Get the given source directory.
      Parameters:
      num - the number of the source directory
      Returns:
      the source directory
    • removeSourceDir

      public void removeSourceDir(int num)
      Remove source directory at given index.
      Parameters:
      num - index of the source directory to remove
    • getFileArray

      public String[] getFileArray()
      Get project files as an array of Strings.
    • getSourceDirArray

      public String[] getSourceDirArray()
      Get source dirs as an array of Strings.
    • getSourceDirList

      public List<String> getSourceDirList()
      Get the source dir list.
    • addAuxClasspathEntry

      public boolean addAuxClasspathEntry(String auxClasspathEntry)
      Add an auxiliary classpath entry
      Parameters:
      auxClasspathEntry - the entry
      Returns:
      true if the entry was added successfully, or false if the given entry is already in the list
    • getNumAuxClasspathEntries

      public int getNumAuxClasspathEntries()
      Get the number of auxiliary classpath entries.
    • getAuxClasspathEntry

      public String getAuxClasspathEntry(int n)
      Get the n'th auxiliary classpath entry.
    • removeAuxClasspathEntry

      public void removeAuxClasspathEntry(int n)
      Remove the n'th auxiliary classpath entry.
    • getAuxClasspathEntryList

      public List<String> getAuxClasspathEntryList()
      Return the list of aux classpath entries.
    • readXML

    • writeXML

      public void writeXML(File f, @CheckForNull BugCollection bugCollection) throws IOException
      Throws:
      IOException
    • readProject

      public static Project readProject(String argument) throws IOException
      Read Project from named file.
      Parameters:
      argument - command line argument containing project file name
      Returns:
      the Project
      Throws:
      IOException
    • toString

      public String toString()
      Convert to a string in a nice (displayable) format.
      Overrides:
      toString in class Object
    • transformFilename

      public static String transformFilename(String fileName)
      Transform a user-entered filename into a proper filename, by adding the ".fb" file extension if it isn't already present.
    • writeXML

      public void writeXML(XMLOutput xmlOutput) throws IOException
      Description copied from interface: XMLWriteable
      Write this object to given XMLOutput.
      Specified by:
      writeXML in interface XMLWriteable
      Parameters:
      xmlOutput - the XMLOutput for the document
      Throws:
      IOException
    • writeXML

      public void writeXML(XMLOutput xmlOutput, @CheckForNull File destination, @CheckForNull BugCollection bugCollection) throws IOException
      Throws:
      IOException
    • setTimestamp

      public void setTimestamp(long timestamp)
    • addTimestamp

      public void addTimestamp(long timestamp)
    • getTimestamp

      public long getTimestamp()
    • setProjectName

      public void setProjectName(String projectName)
    • getProjectName

      public String getProjectName()
    • setSuppressionFilter

      public void setSuppressionFilter(@Nonnull Filter suppressionFilter)
    • getSuppressionFilter

      @Nonnull public Filter getSuppressionFilter()
    • setGuiCallback

      public void setGuiCallback(IGuiCallback guiCallback)
    • getGuiCallback

      public IGuiCallback getGuiCallback()
    • getResolvedSourcePaths

      public Iterable<String> getResolvedSourcePaths()
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable