Class PMD


  • public class PMD
    extends Object
    This is the main class for interacting with PMD. The primary flow of all Rule process is controlled via interactions with this class. A command line interface is supported, as well as a programmatic API for integrating PMD with other software such as IDEs and Ant.
    • Field Detail

      • EOL

        public static final String EOL
        The line delimiter used by PMD in outputs. Usually the platform specific line separator.
      • configuration

        protected final PMDConfiguration configuration
        Contains the configuration with which this PMD instance has been created.
    • Constructor Detail

      • PMD

        public PMD()
        Create a PMD instance using a default Configuration. Changes to the configuration may be required.
      • PMD

        public PMD​(PMDConfiguration configuration)
        Create a PMD instance using the specified Configuration.
        Parameters:
        configuration - The runtime Configuration of PMD to use.
    • Method Detail

      • getURIDataSources

        public static List<DataSource> getURIDataSources​(String uriString)
                                                  throws PMDException
        Parses the given string as a database uri and returns a list of datasources.
        Parameters:
        uriString - the URI to parse
        Returns:
        list of data sources
        Throws:
        PMDException - if the URI couldn't be parsed
        See Also:
        DBURI
      • parserFor

        public static Parser parserFor​(LanguageVersion languageVersion,
                                       PMDConfiguration configuration)
        Helper method to get a configured parser for the requested language. The parser is configured based on the given PMDConfiguration.
        Parameters:
        languageVersion - the requested language
        configuration - the given configuration
        Returns:
        the pre-configured parser
      • getConfiguration

        public PMDConfiguration getConfiguration()
        Get the runtime configuration. The configuration can be modified to affect how PMD behaves.
        Returns:
        The configuration.
        See Also:
        PMDConfiguration
      • getSourceCodeProcessor

        public SourceCodeProcessor getSourceCodeProcessor()
        Gets the source code processor.
        Returns:
        SourceCodeProcessor
      • doPMD

        public static int doPMD​(PMDConfiguration configuration)
        This method is the main entry point for command line usage.
        Parameters:
        configuration - the configure to use
        Returns:
        number of violations found.
      • newRuleContext

        public static RuleContext newRuleContext​(String sourceCodeFilename,
                                                 File sourceCodeFile)
        Creates a new rule context, initialized with a new, empty report.
        Parameters:
        sourceCodeFilename - the source code filename
        sourceCodeFile - the source code file
        Returns:
        the rule context
      • getApplicableFiles

        public static List<DataSource> getApplicableFiles​(PMDConfiguration configuration,
                                                          Set<Language> languages)
        Determines all the files, that should be analyzed by PMD.
        Parameters:
        configuration - contains either the file path or the DB URI, from where to load the files
        languages - used to filter by file extension
        Returns:
        List of DataSource of files
      • main

        public static void main​(String[] args)
        Entry to invoke PMD as command line tool
        Parameters:
        args - command line arguments
      • run

        public static int run​(String[] args)
        Parses the command line arguments and executes PMD.
        Parameters:
        args - command line arguments
        Returns:
        the exit code, where 0 means successful execution, 1 means error, 4 means there have been violations found.