Class StdCyclomaticComplexityRule
- java.lang.Object
-
- net.sourceforge.pmd.properties.AbstractPropertySource
-
- net.sourceforge.pmd.lang.rule.AbstractRule
-
- net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
-
- net.sourceforge.pmd.lang.java.rule.design.StdCyclomaticComplexityRule
-
- All Implemented Interfaces:
JavaParserVisitor
,net.sourceforge.pmd.lang.rule.ImmutableLanguage
,net.sourceforge.pmd.properties.PropertySource
,net.sourceforge.pmd.Rule
- Direct Known Subclasses:
ModifiedCyclomaticComplexityRule
public class StdCyclomaticComplexityRule extends AbstractJavaRule
Implements the standard cyclomatic complexity ruleStandard rules: +1 for each decision point, including case statements but not including boolean operators unlike CyclomaticComplexityRule.
- Since:
- June 18, 2014
- Author:
- Alan Hohn, based on work by Donald A. Leckie
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
StdCyclomaticComplexityRule.Entry
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Deque<StdCyclomaticComplexityRule.Entry>
entryStack
static net.sourceforge.pmd.properties.IntegerProperty
REPORT_LEVEL_DESCRIPTOR
static net.sourceforge.pmd.properties.BooleanProperty
SHOW_CLASSES_COMPLEXITY_DESCRIPTOR
static net.sourceforge.pmd.properties.BooleanProperty
SHOW_METHODS_COMPLEXITY_DESCRIPTOR
-
Constructor Summary
Constructors Constructor Description StdCyclomaticComplexityRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
visit(ASTCatchStatement node, java.lang.Object data)
java.lang.Object
visit(ASTClassOrInterfaceDeclaration node, java.lang.Object data)
java.lang.Object
visit(ASTCompilationUnit node, java.lang.Object data)
java.lang.Object
visit(ASTConditionalExpression node, java.lang.Object data)
java.lang.Object
visit(ASTConstructorDeclaration node, java.lang.Object data)
java.lang.Object
visit(ASTDoStatement node, java.lang.Object data)
java.lang.Object
visit(ASTEnumDeclaration node, java.lang.Object data)
java.lang.Object
visit(ASTForStatement node, java.lang.Object data)
java.lang.Object
visit(ASTIfStatement node, java.lang.Object data)
java.lang.Object
visit(ASTMethodDeclaration node, java.lang.Object data)
java.lang.Object
visit(ASTSwitchStatement node, java.lang.Object data)
java.lang.Object
visit(ASTWhileStatement node, java.lang.Object data)
-
Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
apply, getDeclaringType, importsPackage, isQualifiedName, isSuppressed, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitAll
-
Methods inherited from class net.sourceforge.pmd.properties.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule
addExample, addRuleChainVisit, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, deepCopy, deepCopyValuesTo, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, hashCode, isDeprecated, isDfa, isMultifile, isRuleChain, isTypeResolution, setDeprecated, setDescription, setDfa, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setMultifile, setName, setPriority, setRuleClass, setRuleSetName, setSince, setTypeResolution, setUsesDFA, setUsesMultifile, setUsesTypeResolution, start, usesDFA, usesMultifile, usesRuleChain, usesTypeResolution
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.properties.PropertySource
definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
-
-
-
Field Detail
-
REPORT_LEVEL_DESCRIPTOR
public static final net.sourceforge.pmd.properties.IntegerProperty REPORT_LEVEL_DESCRIPTOR
-
SHOW_CLASSES_COMPLEXITY_DESCRIPTOR
public static final net.sourceforge.pmd.properties.BooleanProperty SHOW_CLASSES_COMPLEXITY_DESCRIPTOR
-
SHOW_METHODS_COMPLEXITY_DESCRIPTOR
public static final net.sourceforge.pmd.properties.BooleanProperty SHOW_METHODS_COMPLEXITY_DESCRIPTOR
-
entryStack
protected java.util.Deque<StdCyclomaticComplexityRule.Entry> entryStack
-
-
Method Detail
-
visit
public java.lang.Object visit(ASTCompilationUnit node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTIfStatement node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTCatchStatement node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTForStatement node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTDoStatement node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTSwitchStatement node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTWhileStatement node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTConditionalExpression node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTClassOrInterfaceDeclaration node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTMethodDeclaration node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTEnumDeclaration node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTConstructorDeclaration node, java.lang.Object data)
- Specified by:
visit
in interfaceJavaParserVisitor
- Overrides:
visit
in classAbstractJavaRule
-
-