Modifier and Type | Method and Description |
---|---|
Rule |
RuleViolation.getRule()
Get the Rule which identified this violation.
|
Rule |
RuleSets.getRuleByName(String ruleName)
Returns the first Rule found with the given name.
|
Rule |
RuleSet.getRuleByName(String ruleName)
Returns the first Rule found with the given name (case-sensitive).
|
Rule |
Report.RuleConfigurationError.rule() |
Modifier and Type | Method and Description |
---|---|
Set<Rule> |
RuleSets.getAllRules()
Return all rules from all rulesets.
|
Collection<Rule> |
RuleSet.getRules()
Returns the actual Collection of rules in this ruleset
|
Modifier and Type | Method and Description |
---|---|
void |
RuleSet.addRule(Rule rule)
Add a new rule to this ruleset.
|
void |
RuleSet.addRuleByReference(String ruleSetFileName,
Rule rule)
Add a new rule by reference to this ruleset.
|
boolean |
RuleSet.addRuleIfNotExists(Rule rule)
Only adds a rule to the ruleset if no rule with the same name for the same language was added
before, so that the existent rule configuration won't be overridden.
|
boolean |
RuleSet.addRuleReplaceIfExists(Rule rule)
Adds a rule.
|
static boolean |
RuleSet.applies(Rule rule,
LanguageVersion languageVersion)
Does the given Rule apply to the given LanguageVersion?
|
static RuleSet |
RuleSet.createFor(String name,
Rule... theRules)
A convenience constructor
|
String |
PropertyDescriptor.propertyErrorFor(Rule rule)
A convenience method that returns an error string if the rule holds onto
a property value that has a problem.
|
Modifier and Type | Method and Description |
---|---|
void |
RuleSets.removeDysfunctionalRules(Collection<Rule> collector)
Remove and collect any rules that report problems.
|
void |
RuleSet.removeDysfunctionalRules(Collection<Rule> collector)
Remove and collect any misconfigured rules.
|
Constructor and Description |
---|
Report.RuleConfigurationError(Rule theRule,
String theIssue) |
Modifier and Type | Field and Description |
---|---|
Rule |
RuleDuration.rule |
Constructor and Description |
---|
RuleDuration(long elapsed,
Rule rule) |
Constructor and Description |
---|
EcmascriptParserOptions(Rule rule) |
Modifier and Type | Class and Description |
---|---|
class |
AbstractEcmascriptRule |
class |
EcmascriptXPathRule |
Modifier and Type | Method and Description |
---|---|
protected RuleViolation |
EcmascriptRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message) |
protected RuleViolation |
EcmascriptRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message,
int beginLine,
int endLine) |
protected void |
EcmascriptRuleChainVisitor.visit(Rule rule,
Node node,
RuleContext ctx) |
Modifier and Type | Class and Description |
---|---|
class |
ConsistentReturnRule |
Modifier and Type | Method and Description |
---|---|
boolean |
ASTTypeDeclaration.hasSuppressWarningsAnnotationFor(Rule rule) |
boolean |
ASTLocalVariableDeclaration.hasSuppressWarningsAnnotationFor(Rule rule) |
boolean |
CanSuppressWarnings.hasSuppressWarningsAnnotationFor(Rule rule) |
boolean |
ASTClassOrInterfaceBodyDeclaration.hasSuppressWarningsAnnotationFor(Rule rule) |
boolean |
ASTFormalParameter.hasSuppressWarningsAnnotationFor(Rule rule) |
boolean |
ASTAnnotation.suppresses(Rule rule) |
Modifier and Type | Class and Description |
---|---|
class |
AbstractInefficientZeroCheck
This is an abstract rule for patterns which compare a method invocation to 0.
|
class |
AbstractJavaRule |
class |
AbstractPoorMethodCall
Detects and flags the occurrences of specific method calls against an instance of
a designated class.
|
class |
AbstractStatisticalJavaRule |
class |
GenericLiteralCheckerRule
This class allow to match a Literal (most likely a String) with a regex pattern.
|
class |
StringConcatenationRule |
class |
SymbolTableTestRule |
class |
UselessAssignment |
Modifier and Type | Method and Description |
---|---|
protected RuleViolation |
JavaRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message) |
protected RuleViolation |
JavaRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message,
int beginLine,
int endLine) |
protected void |
JavaRuleChainVisitor.visit(Rule rule,
Node node,
RuleContext ctx) |
Constructor and Description |
---|
JavaRuleViolation(Rule rule,
RuleContext ctx,
JavaNode node,
String message) |
JavaRuleViolation(Rule rule,
RuleContext ctx,
JavaNode node,
String message,
int beginLine,
int endLine) |
Modifier and Type | Class and Description |
---|---|
class |
AvoidBranchingStatementAsLastInLoopRule |
class |
AvoidMultipleUnaryOperatorsRule |
class |
AvoidUsingHardCodedIPRule |
class |
AvoidUsingOctalValuesRule |
class |
BigIntegerInstantiationRule |
class |
BooleanInstantiationRule
Avoid instantiating Boolean objects; you can reference Boolean.TRUE,
Boolean.FALSE, or call Boolean.valueOf() instead.
|
class |
BrokenNullCheckRule |
class |
CheckResultSetRule
Rule that verifies, that the return values of next(), first(), last(), etc.
|
class |
CheckSkipResultRule |
class |
DoubleCheckedLockingRule
void method() {
if(x == null) {
synchronized(this){
if(x == null) {
x = new | method();
}
}
}
1.
|
class |
OverrideBothEqualsAndHashcodeRule |
Modifier and Type | Class and Description |
---|---|
class |
AbstractNcssCountRule
Abstract superclass for NCSS counting methods.
|
class |
CyclomaticComplexityRule |
class |
ExcessiveClassLengthRule
This rule detects when a class exceeds a certain
threshold.
|
class |
ExcessiveMethodLengthRule
This rule detects when a method exceeds a certain
threshold.
|
class |
ExcessiveParameterListRule
This rule detects an abnormally long parameter list.
|
class |
ExcessivePublicCountRule |
class |
NcssConstructorCountRule
Non-commented source statement counter for constructors.
|
class |
NcssMethodCountRule
Non-commented source statement counter for methods.
|
class |
NcssTypeCountRule
Non-commented source statement counter for type declarations.
|
class |
NPathComplexityRule
NPath complexity is a measurement of the acyclic execution paths through a
function.
|
class |
TooManyFieldsRule |
Modifier and Type | Class and Description |
---|---|
class |
AbstractCommentRule |
class |
CodeInCommentsRule |
class |
CommentContentRule
A rule that checks for illegal words in the comment text.
|
class |
CommentRequiredRule |
class |
CommentSizeRule
A rule to manage those who just can't shut up...
|
class |
HeaderCommentsRule
Restrictions regarding the legal placement and content of the file header.
|
class |
JavadocRule |
Modifier and Type | Class and Description |
---|---|
class |
AssignmentInOperandRule |
class |
DataflowAnomalyAnalysisRule
Starts path search for each method and runs code if found.
|
class |
DontImportSunRule |
class |
NullAssignmentRule |
class |
OnlyOneReturnRule |
class |
SuspiciousOctalEscapeRule |
Constructor and Description |
---|
DaaRuleViolation(Rule rule,
RuleContext ctx,
Node node,
String type,
String msg,
String var,
int beginLine,
int endLine) |
Modifier and Type | Class and Description |
---|---|
class |
CouplingBetweenObjectsRule
CouplingBetweenObjects attempts to capture all unique Class attributes,
local variables, and return types to determine how many objects a class is
coupled to.
|
class |
ExcessiveImportsRule
ExcessiveImports attempts to count all unique imports a class
contains.
|
class |
LawOfDemeterRule
This rule can detect possible violations of the Law of Demeter.
|
class |
LooseCouplingRule |
class |
LoosePackageCouplingRule
The loose package coupling Rule can be used to ensure coupling outside of
a package hierarchy is minimized to all but an allowed set of classes from
within the package hierarchy.
|
Modifier and Type | Class and Description |
---|---|
class |
AccessorClassGenerationRule
1.
|
class |
AssignmentToNonFinalStaticRule |
class |
AvoidDeeplyNestedIfStmtsRule |
class |
AvoidReassigningParametersRule |
class |
CloseResourceRule
Makes sure you close your database connections.
|
class |
CompareObjectsWithEqualsRule |
class |
ConfusingTernaryRule
if (x !
|
class |
ConstructorCallsOverridableMethodRule
Searches through all methods and constructors called from constructors.
|
class |
ExcessiveLengthRule
This is a common super class for things which
have excessive length.
|
class |
ExcessiveNodeCountRule
This is a common super class for things which
shouldn't have excessive nodes underneath.
|
class |
GenericClassCounterRule
A generic rule that can be configured to "count" classes of certain
type based on either their name (full name, prefix, suffixes anything can
be matched with a regex), and/or
their type.
|
class |
GodClassRule
The God Class Rule detects a the God Class design flaw using metrics.
|
class |
IdempotentOperationsRule |
class |
ImmutableFieldRule |
class |
NonThreadSafeSingletonRule |
class |
PositionalIteratorRule |
class |
PreserveStackTraceRule |
class |
SimplifyBooleanReturnsRule |
class |
SingularFieldRule |
class |
SwitchDensityRule |
class |
UnnecessaryLocalBeforeReturnRule |
class |
UnsynchronizedStaticDateFormatterRule
Using a DateFormatter (SimpleDateFormatter) which is static can cause
unexpected results when used in a multi-threaded environment.
|
class |
UseCollectionIsEmptyRule
Detect structures like "foo.size() == 0" and suggest replacing them with
foo.isEmpty().
|
class |
UseSingletonRule |
Modifier and Type | Class and Description |
---|---|
class |
AvoidCallingFinalizeRule |
Modifier and Type | Class and Description |
---|---|
class |
DontImportJavaLangRule |
class |
DuplicateImportsRule |
class |
ImportFromSamePackageRule |
class |
UnnecessaryFullyQualifiedNameRule |
class |
UnusedImportsRule |
Modifier and Type | Class and Description |
---|---|
class |
BeanMembersShouldSerializeRule |
Modifier and Type | Class and Description |
---|---|
class |
AbstractJUnitRule |
class |
JUnitAssertionsShouldIncludeMessageRule |
class |
JUnitTestsShouldIncludeAssertRule |
class |
TestClassWithoutTestCasesRule |
Modifier and Type | Class and Description |
---|---|
class |
MoreThanOneLoggerRule |
Modifier and Type | Class and Description |
---|---|
class |
JUnitUseExpectedRule
This rule finds code like this:
public void testFoo() {
try {
doSomething();
fail("should have thrown an exception");
} catch (Exception e) {
}
}
In JUnit 4, use
@Test(expected = Exception.class)
|
class |
UnnecessaryCastRule |
Modifier and Type | Class and Description |
---|---|
class |
AvoidDollarSignsRule |
class |
AvoidFieldNameMatchingMethodNameRule |
class |
AvoidFieldNameMatchingTypeNameRule |
class |
ClassNamingConventionsRule |
class |
MethodNamingConventionsRule |
class |
MethodWithSameNameAsEnclosingClassRule |
class |
SuspiciousHashcodeMethodNameRule |
class |
VariableNamingConventionsRule |
Modifier and Type | Class and Description |
---|---|
class |
AbstractOptimizationRule
Base class with utility methods for optimization rules
|
class |
AvoidInstantiatingObjectsInLoopsRule |
class |
LocalVariableCouldBeFinalRule |
class |
MethodArgumentCouldBeFinalRule |
class |
PrematureDeclarationRule
Checks for variables in methods that are defined before they are really needed.
|
class |
RedundantFieldInitializerRule
Detects redundant field initializers, i.e. the field initializer expressions the JVM would assign by default.
|
class |
UnnecessaryWrapperObjectCreationRule |
class |
UseStringBufferForStringAppendsRule |
Modifier and Type | Class and Description |
---|---|
class |
AvoidCatchingThrowableRule
Finds
catch statements
containing throwable as the type definition. |
class |
ExceptionAsFlowControlRule
Catches the use of exception statements as a flow control device.
|
class |
SignatureDeclareThrowsExceptionRule
|
Modifier and Type | Class and Description |
---|---|
class |
AppendCharacterWithCharRule
This rule finds the following:
StringBuffer.append("c"); // appends a
single character
It is preferable to use StringBuffer.append('c'); // appends a single
character Implementation of PMD RFE 1373863
|
class |
AvoidDuplicateLiteralsRule |
class |
ConsecutiveLiteralAppendsRule
This rule finds concurrent calls to StringBuffer/Builder.append where String literals
are used It would be much better to make these calls using one call to
.append
example:
StringBuilder buf = new StringBuilder();
buf.append("Hello");
buf.append(" ").append("World");
This would be more eloquently put as:
StringBuilder buf = new StringBuilder();
buf.append("Hello World");
The rule takes one parameter, threshold, which defines the lower limit of
consecutive appends before a violation is created.
|
class |
InefficientEmptyStringCheckRule
This rule finds code which inefficiently determines empty strings.
|
class |
InefficientStringBufferingRule
How this rule works:
find additive expressions: +
check that the addition is between anything other than two literals
if true and also the parent is StringBuffer constructor or append,
report a violation.
|
class |
InsufficientStringBufferDeclarationRule
This rule finds StringBuffers which may have been pre-sized incorrectly
See http://sourceforge.net/forum/forum.php?
|
class |
StringInstantiationRule |
class |
StringToStringRule |
class |
UnnecessaryCaseChangeRule |
class |
UseIndexOfCharRule |
class |
UselessStringValueOfRule |
class |
UseStringBufferLengthRule
This rule finds places where StringBuffer.toString() is called just to see if
the string is 0 length by either using .equals("") or toString().length()
StringBuffer sb = new StringBuffer("some string");
if (sb.toString().equals("")) {
// this is wrong
}
if (sb.length() == 0) {
// this is right
}
|
Modifier and Type | Class and Description |
---|---|
class |
AbstractSunSecureRule
Utility methods for the package
|
class |
ArrayIsStoredDirectlyRule |
class |
MethodReturnsInternalArrayRule
Implementation note: this rule currently ignores return types of y.x.z,
currently it handles only local type fields.
|
Modifier and Type | Class and Description |
---|---|
class |
UnnecessaryConversionTemporaryRule |
class |
UnnecessaryReturnRule |
class |
UselessOperationOnImmutableRule
An operation on an Immutable object (String, BigDecimal or BigInteger) won't change
the object itself.
|
class |
UselessOverridingMethodRule |
Modifier and Type | Class and Description |
---|---|
class |
UnusedFormalParameterRule |
class |
UnusedLocalVariableRule |
class |
UnusedModifierRule |
class |
UnusedPrivateFieldRule |
class |
UnusedPrivateMethodRule |
Modifier and Type | Class and Description |
---|---|
class |
CloneMethodMustImplementCloneable
The method clone() should only be implemented if the class implements the
Cloneable interface with the exception of a final method that only throws
CloneNotSupportedException.
|
class |
LooseCoupling
This is a separate rule, uses the type resolution facade
|
class |
SignatureDeclareThrowsException
A method/constructor shouldn't explicitly throw java.lang.Exception, since it
is unclear which exceptions that can be thrown from the methods.
|
Modifier and Type | Class and Description |
---|---|
class |
UnusedImports |
Modifier and Type | Class and Description |
---|---|
class |
AbstractJspRule |
Modifier and Type | Method and Description |
---|---|
protected RuleViolation |
JspRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message) |
protected RuleViolation |
JspRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message,
int beginLine,
int endLine) |
protected void |
JspRuleChainVisitor.visit(Rule rule,
Node node,
RuleContext ctx) |
Modifier and Type | Class and Description |
---|---|
class |
DuplicateJspImportsRule |
class |
NoInlineStyleInformationRule
This rule checks that no "style" elements (like , , ...) are used, and that no
"style" attributes (like "font", "size", "align") are used.
|
Modifier and Type | Class and Description |
---|---|
class |
AbstractDelegateRule
Base class for Rule implementations which delegate to another Rule instance.
|
class |
AbstractRule
Basic abstract implementation of all parser-independent methods of the Rule
interface.
|
class |
MockRule
This is a Rule implementation which can be used in scenarios where an actual
functional Rule is not needed.
|
class |
RuleReference
This class represents a Rule which is a reference to Rule defined in another
RuleSet.
|
class |
XPathRule
Rule that tries to match an XPath expression against a DOM view of an AST.
|
Modifier and Type | Field and Description |
---|---|
protected Rule |
ParametricRuleViolation.rule |
Modifier and Type | Field and Description |
---|---|
protected Map<RuleSet,List<Rule>> |
AbstractRuleChainVisitor.ruleSetRules
These are all the rules participating in the RuleChain, grouped by RuleSet.
|
Modifier and Type | Method and Description |
---|---|
Rule |
AbstractDelegateRule.getRule() |
Rule |
ParametricRuleViolation.getRule() |
Modifier and Type | Method and Description |
---|---|
void |
RuleChainVisitor.add(RuleSet ruleSet,
Rule rule)
Add the given rule to the visitor.
|
void |
AbstractRuleChainVisitor.add(RuleSet ruleSet,
Rule rule) |
void |
RuleViolationFactory.addViolation(RuleContext ruleContext,
Rule rule,
Node node,
String message,
int beginLine,
int endLine,
Object[] args) |
void |
AbstractRuleViolationFactory.addViolation(RuleContext ruleContext,
Rule rule,
Node node,
String message,
int beginLine,
int endLine,
Object[] args) |
void |
RuleViolationFactory.addViolation(RuleContext ruleContext,
Rule rule,
Node node,
String message,
Object[] args)
Adds a violation to the report.
|
void |
AbstractRuleViolationFactory.addViolation(RuleContext ruleContext,
Rule rule,
Node node,
String message,
Object[] args) |
protected abstract RuleViolation |
AbstractRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message) |
protected abstract RuleViolation |
AbstractRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message,
int beginLine,
int endLine) |
void |
AbstractDelegateRule.setRule(Rule rule) |
protected abstract void |
AbstractRuleChainVisitor.visit(Rule rule,
Node node,
RuleContext ctx)
Visit the given rule to the given node.
|
Constructor and Description |
---|
ParametricRuleViolation(Rule theRule,
RuleContext ctx,
T node,
String message) |
RuleReference(Rule theRule,
RuleSetReference theRuleSetReference) |
Modifier and Type | Method and Description |
---|---|
String |
PropertyDescriptorWrapper.propertyErrorFor(Rule rule) |
String |
AbstractProperty.propertyErrorFor(Rule rule)
A convenience method that returns an error string if the rule holds onto
a property value that has a problem.
|
Modifier and Type | Interface and Description |
---|---|
interface |
StatisticalRule
This interface tags a Rule as being a Statistical rule, producing various
metrics from data points.
|
Constructor and Description |
---|
XmlParserOptions(Rule rule) |
Modifier and Type | Class and Description |
---|---|
class |
AbstractDomXmlRule
This is a base class for XML Java bases rules that which to visit the nodes
using the DOM.
|
class |
AbstractXmlRule
This is a base class for XML Java bases rules.
|
class |
XmlXPathRule |
Modifier and Type | Method and Description |
---|---|
protected RuleViolation |
XmlRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message) |
protected RuleViolation |
XmlRuleViolationFactory.createRuleViolation(Rule rule,
RuleContext ruleContext,
Node node,
String message,
int beginLine,
int endLine) |
protected void |
XmlRuleChainVisitor.visit(Rule rule,
Node node,
RuleContext ctx) |
Modifier and Type | Class and Description |
---|---|
class |
DFAGraphRule |
Copyright © 2002-2013 InfoEther. All Rights Reserved.