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 classStdCyclomaticComplexityRule.Entry
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Deque<StdCyclomaticComplexityRule.Entry>entryStackstatic net.sourceforge.pmd.properties.IntegerPropertyREPORT_LEVEL_DESCRIPTORstatic net.sourceforge.pmd.properties.BooleanPropertySHOW_CLASSES_COMPLEXITY_DESCRIPTORstatic net.sourceforge.pmd.properties.BooleanPropertySHOW_METHODS_COMPLEXITY_DESCRIPTOR
-
Constructor Summary
Constructors Constructor Description StdCyclomaticComplexityRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectvisit(ASTCatchStatement node, java.lang.Object data)java.lang.Objectvisit(ASTClassOrInterfaceDeclaration node, java.lang.Object data)java.lang.Objectvisit(ASTCompilationUnit node, java.lang.Object data)java.lang.Objectvisit(ASTConditionalExpression node, java.lang.Object data)java.lang.Objectvisit(ASTConstructorDeclaration node, java.lang.Object data)java.lang.Objectvisit(ASTDoStatement node, java.lang.Object data)java.lang.Objectvisit(ASTEnumDeclaration node, java.lang.Object data)java.lang.Objectvisit(ASTForStatement node, java.lang.Object data)java.lang.Objectvisit(ASTIfStatement node, java.lang.Object data)java.lang.Objectvisit(ASTMethodDeclaration node, java.lang.Object data)java.lang.Objectvisit(ASTSwitchStatement node, java.lang.Object data)java.lang.Objectvisit(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.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 net.sourceforge.pmd.properties.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
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:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTIfStatement node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTCatchStatement node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTForStatement node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTDoStatement node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTSwitchStatement node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTWhileStatement node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTConditionalExpression node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTClassOrInterfaceDeclaration node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTMethodDeclaration node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTEnumDeclaration node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public java.lang.Object visit(ASTConstructorDeclaration node, java.lang.Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
-