Class UserPreferences

java.lang.Object
edu.umd.cs.findbugs.config.UserPreferences
All Implemented Interfaces:
Cloneable

public class UserPreferences extends Object implements Cloneable
User Preferences outside of any one Project. This consists of a class to manage the findbugs.prop file found in the user.home.
  • Field Details

  • Constructor Details

    • UserPreferences

      private UserPreferences()
  • Method Details

    • createDefaultUserPreferences

      public static UserPreferences createDefaultUserPreferences()
      Create default UserPreferences.
      Returns:
      default UserPreferences
    • read

      public void read()
      Read persistent global UserPreferences from file in the user's home directory.
    • read

      public void read(@WillClose InputStream in) throws IOException
      Read user preferences from given input stream. The InputStream is guaranteed to be closed by this method.
      Parameters:
      in - the InputStream
      Throws:
      IOException
    • parseAdjustPriorities

      public static Map<String,String> parseAdjustPriorities(String str)
      Parses the -adjustPriority parameter into a map: detector / bug pattern -> priority change
      Parameters:
      str - the string to parse
      Returns:
      the parsed map
    • write

      public void write()
      Write persistent global UserPreferences to file in user's home directory.
    • write

      public void write(@WillClose OutputStream out) throws IOException
      Write UserPreferences to given OutputStream. The OutputStream is guaranteed to be closed by this method.
      Parameters:
      out - the OutputStream
      Throws:
      IOException
    • getRecentProjects

      public List<String> getRecentProjects()
      Get List of recent project filenames.
      Returns:
      List of recent project filenames
    • useProject

      public void useProject(String projectName)
      Add given project filename to the front of the recently-used project list.
      Parameters:
      projectName - project filename
    • removeProject

      public void removeProject(String projectName)
      Remove project filename from the recently-used project list.
      Parameters:
      projectName - project filename
    • enableDetector

      public void enableDetector(DetectorFactory factory, boolean enable)
      Set the enabled/disabled status of given Detector.
      Parameters:
      factory - the DetectorFactory for the Detector to be enabled/disabled
      enable - true if the Detector should be enabled, false if it should be Disabled
    • isDetectorEnabled

      public boolean isDetectorEnabled(DetectorFactory factory)
      Get the enabled/disabled status of given Detector.
      Parameters:
      factory - the DetectorFactory of the Detector
      Returns:
      true if the Detector is enabled, false if not
    • enableAllDetectors

      public void enableAllDetectors(boolean enable)
      Enable or disable all known Detectors.
      Parameters:
      enable - true if all detectors should be enabled, false if they should all be disabled
    • setProjectFilterSettings

      public void setProjectFilterSettings(ProjectFilterSettings filterSettings)
      Set the ProjectFilterSettings.
      Parameters:
      filterSettings - the ProjectFilterSettings
    • getFilterSettings

      public ProjectFilterSettings getFilterSettings()
      Get ProjectFilterSettings.
      Returns:
      the ProjectFilterSettings
    • getUserDetectorThreshold

      public int getUserDetectorThreshold()
      Get the detector threshold (min severity to report a warning).
      Returns:
      the detector threshold
    • setUserDetectorThreshold

      public void setUserDetectorThreshold(int threshold)
      Set the detector threshold (min severity to report a warning).
      Parameters:
      threshold - the detector threshold
    • setRunAtFullBuild

      public void setRunAtFullBuild(boolean enable)
      Set the enabled/disabled status of running findbugs automatically for full builds.
      Parameters:
      enable - true if running FindBugs at full builds should be enabled, false if it should be Disabled
    • isRunAtFullBuild

      public boolean isRunAtFullBuild()
      Get the enabled/disabled status of runAtFullBuild
      Returns:
      true if the running for full builds is enabled, false if not
    • setUserDetectorThreshold

      public void setUserDetectorThreshold(String threshold)
      Set the detector threshold (min severity to report a warning).
      Parameters:
      threshold - the detector threshold
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • clone

      public UserPreferences clone()
      Overrides:
      clone in class Object
    • getEffort

      public String getEffort()
    • setEffort

      public void setEffort(String effort)
    • getIncludeFilterFiles

      public Map<String,Boolean> getIncludeFilterFiles()
    • setIncludeFilterFiles

      public void setIncludeFilterFiles(Map<String,Boolean> includeFilterFiles)
    • getExcludeBugsFiles

      public Map<String,Boolean> getExcludeBugsFiles()
    • setExcludeBugsFiles

      public void setExcludeBugsFiles(Map<String,Boolean> excludeBugsFiles)
    • setExcludeFilterFiles

      public void setExcludeFilterFiles(Map<String,Boolean> excludeFilterFiles)
    • getExcludeFilterFiles

      public Map<String,Boolean> getExcludeFilterFiles()
    • setCustomPlugins

      public void setCustomPlugins(Map<String,Boolean> customPlugins)
      Additional plugins which could be used by IFindBugsEngine (if enabled), or which shouldn't be used (if disabled). If a plugin is not included in the set, it's enablement depends on it's default settings.
      Parameters:
      customPlugins - map with additional third party plugin locations (as absolute paths), never null, but might be empty
      See Also:
    • getCustomPlugins

      public Map<String,Boolean> getCustomPlugins()
      Additional plugins which could be used by IFindBugsEngine (if enabled), or which shouldn't be used (if disabled). If a plugin is not included in the set, it's enablement depends on it's default settings.
      Returns:
      map with additional third party plugins, might be empty, never null. The keys are either absolute plugin paths or plugin id's. Special case: if the path consists of one path segment then it represents the plugin id for a plugin to be disabled. A value of a particular key can be null (same as disabled)
      See Also:
    • getCustomPlugins

      public Set<String> getCustomPlugins(boolean enabled)
      Additional plugins which could be used or shouldn't be used (depending on given argument) by IFindBugsEngine. If a plugin is not included in the set, it's enablement depends on it's default settings.
      Returns:
      set with additional third party plugins, might be empty, never null. The elements are either absolute plugin paths or plugin id's. Special case: if the path consists of one path segment then it represents the plugin id for a plugin to be disabled.
      See Also:
    • readProperties

      private static Map<String,Boolean> readProperties(Properties props, String keyPrefix)
      Helper method to read array of strings out of the properties file, using a Findbugs style format.
      Parameters:
      props - The properties file to read the array from.
      keyPrefix - The key prefix of the array.
      Returns:
      The array of Strings, or an empty array if no values exist.
    • writeProperties

      private static void writeProperties(Properties props, String keyPrefix, Map<String,Boolean> filters)
      Helper method to write array of strings out of the properties file, using a Findbugs style format.
      Parameters:
      props - The properties file to write the array to.
      keyPrefix - The key prefix of the array.
      filters - The filters array to write to the properties.
    • getAnalysisFeatureSettings

      public AnalysisFeatureSetting[] getAnalysisFeatureSettings()
      Returns the effort level as an array of feature settings as expected by FindBugs.
      Returns:
      The array of feature settings corresponding to the current effort setting.
    • getMergeSimilarWarnings

      public boolean getMergeSimilarWarnings()
      Returns:
      true if similar warnings should be merged, false otherwise
    • setMergeSimilarWarnings

      public void setMergeSimilarWarnings(boolean mergeSimilarWarnings)
      Parameters:
      mergeSimilarWarnings - true if similar warnings should be merged, false otherwise
    • resolveRelativePaths

      public void resolveRelativePaths(String preferencesPath)
      Resolve relative paths stored in the user preferences. If the preferences contain relative filter paths, modifies the paths to be absolute. For that, the directory of given file will be used first, and if that does not match, the parent directory will be used to resolve relative paths. If none of the paths match existing files, preferences will stay unchanged.
      Parameters:
      preferencesPath - the path to the user preferences file, used to resolve relative paths
    • resolveRelativePaths

      private static Map<String,Boolean> resolveRelativePaths(Path prefsDir, Set<Map.Entry<String,Boolean>> oldMap)
    • resolveRelativePath

      private static String resolveRelativePath(String maybeRelativePath, Path prefsDir)
    • getAdjustPriority

      public Map<String,String> getAdjustPriority()
      Returns:
      Returns the adjustPriority.
    • setAdjustPriority

      public void setAdjustPriority(Map<String,String> adjustPriority)
      Parameters:
      adjustPriority - The adjustPriority to set.