net.sourceforge.pmd
Class PMD

java.lang.Object
  extended by net.sourceforge.pmd.PMD
Direct Known Subclasses:
PmdRunnable

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.


Nested Class Summary
static interface PMD.ProgressMonitor
          A callback that would be implemented by IDEs keeping track of PMD's progress as it evaluates a set of files.
 
Field Summary
protected  PMDConfiguration configuration
          Contains the configuration with which this PMD instance has been created.
static String EOL
          The line delimiter used by PMD in outputs.
static String SUPPRESS_MARKER
          The default suppress marker string.
static String VERSION
          Constant that contains always the current version of PMD.
 
Constructor Summary
PMD()
          Create a PMD instance using a default Configuration.
PMD(PMDConfiguration configuration)
          Create a PMD instance using the specified Configuration.
 
Method Summary
static int doPMD(PMDConfiguration configuration)
          This method is the main entry point for command line usage.
static List<DataSource> getApplicableFiles(PMDConfiguration configuration, Set<Language> languages)
          Determines all the files, that should be analyzed by PMD.
 PMDConfiguration getConfiguration()
          Get the runtime configuration.
 SourceCodeProcessor getSourceCodeProcessor()
          Gets the source code processor.
static List<DataSource> getURIDataSources(String uriString)
          Parses the given string as a database uri and returns a list of datasources.
static void main(String[] args)
          Entry to invoke PMD as command line tool
static RuleContext newRuleContext(String sourceCodeFilename, File sourceCodeFile)
          Creates a new rule context, initialized with a new, empty report.
static Parser parserFor(LanguageVersion languageVersion, PMDConfiguration configuration)
          Helper method to get a configured parser for the requested language.
static void processFiles(PMDConfiguration configuration, RuleSetFactory ruleSetFactory, Collection<File> files, RuleContext ctx, PMD.ProgressMonitor monitor)
          An entry point that would typically be used by IDEs intent on providing ongoing feedback and the ability to terminate it at will.
static void processFiles(PMDConfiguration configuration, RuleSetFactory ruleSetFactory, List<DataSource> files, RuleContext ctx, List<Renderer> renderers)
          Run PMD on a list of files using multiple threads - if more than one is available
static int run(String[] args)
          Parses the command line arguments and executes PMD.
static Report setupReport(RuleSets rs, RuleContext ctx, String fileName)
          Create a report, filter out any defective rules, and keep a record of them.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EOL

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


SUPPRESS_MARKER

public static final String SUPPRESS_MARKER
The default suppress marker string.

See Also:
Constant Field Values

configuration

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


VERSION

public static final String VERSION
Constant that contains always the current version of PMD.

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

setupReport

public static Report setupReport(RuleSets rs,
                                 RuleContext ctx,
                                 String fileName)
Create a report, filter out any defective rules, and keep a record of them.

Parameters:
rs - the rules
ctx - the rule context
fileName - the filename of the source file, which should appear in the report
Returns:
the Report

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

processFiles

public static void processFiles(PMDConfiguration configuration,
                                RuleSetFactory ruleSetFactory,
                                Collection<File> files,
                                RuleContext ctx,
                                PMD.ProgressMonitor monitor)
An entry point that would typically be used by IDEs intent on providing ongoing feedback and the ability to terminate it at will.

Parameters:
configuration - the PMD configuration to use
ruleSetFactory - ruleset factory
files - the files to analyze
ctx - the rule context to use for the execution
monitor - PMD informs about the progress through this progress monitor. It provides also the ability to terminate/cancel the execution.

processFiles

public static void processFiles(PMDConfiguration configuration,
                                RuleSetFactory ruleSetFactory,
                                List<DataSource> files,
                                RuleContext ctx,
                                List<Renderer> renderers)
Run PMD on a list of files using multiple threads - if more than one is available

Parameters:
configuration - Configuration
ruleSetFactory - RuleSetFactory
files - List
ctx - RuleContext
renderers - List

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 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.


Copyright © 2002-2015 InfoEther. All Rights Reserved.