net.sourceforge.pmd.lang.java.rule.codesize
Class StdCyclomaticComplexityRule

java.lang.Object
  extended by net.sourceforge.pmd.AbstractPropertySource
      extended by net.sourceforge.pmd.lang.rule.AbstractRule
          extended by net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
              extended by net.sourceforge.pmd.lang.java.rule.codesize.StdCyclomaticComplexityRule
All Implemented Interfaces:
JavaParserVisitor, ImmutableLanguage, PropertySource, Rule
Direct Known Subclasses:
CyclomaticComplexityRule, ModifiedCyclomaticComplexityRule

public class StdCyclomaticComplexityRule
extends AbstractJavaRule

Implements the standard cyclomatic complexity rule

Standard 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
protected static class StdCyclomaticComplexityRule.Entry
           
 
Field Summary
protected  Stack<StdCyclomaticComplexityRule.Entry> entryStack
           
static IntegerProperty REPORT_LEVEL_DESCRIPTOR
           
static BooleanProperty SHOW_CLASSES_COMPLEXITY_DESCRIPTOR
           
static BooleanProperty SHOW_METHODS_COMPLEXITY_DESCRIPTOR
           
 
Fields inherited from class net.sourceforge.pmd.AbstractPropertySource
propertyDescriptors, propertyValuesByDescriptor
 
Fields inherited from interface net.sourceforge.pmd.Rule
VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
 
Constructor Summary
StdCyclomaticComplexityRule()
           
 
Method Summary
 Object visit(ASTCatchStatement node, Object data)
           
 Object visit(ASTClassOrInterfaceDeclaration node, Object data)
           
 Object visit(ASTCompilationUnit node, Object data)
           
 Object visit(ASTConditionalExpression node, Object data)
           
 Object visit(ASTConstructorDeclaration node, Object data)
           
 Object visit(ASTDoStatement node, Object data)
           
 Object visit(ASTEnumDeclaration node, Object data)
           
 Object visit(ASTForStatement node, Object data)
           
 Object visit(ASTIfStatement node, Object data)
           
 Object visit(ASTMethodDeclaration node, Object data)
           
 Object visit(ASTSwitchStatement node, Object data)
           
 Object visit(ASTWhileStatement node, 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, visitAll
 
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule
addExample, addRuleChainVisit, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, deepCopyValuesTo, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, hashCode, isDeprecated, setDeprecated, setDescription, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setName, setPriority, setRuleClass, setRuleSetName, setSince, setUsesDFA, setUsesTypeResolution, start, usesDFA, usesRuleChain, usesTypeResolution
 
Methods inherited from class net.sourceforge.pmd.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, 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.PropertySource
definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues
 

Field Detail

REPORT_LEVEL_DESCRIPTOR

public static final IntegerProperty REPORT_LEVEL_DESCRIPTOR

SHOW_CLASSES_COMPLEXITY_DESCRIPTOR

public static final BooleanProperty SHOW_CLASSES_COMPLEXITY_DESCRIPTOR

SHOW_METHODS_COMPLEXITY_DESCRIPTOR

public static final BooleanProperty SHOW_METHODS_COMPLEXITY_DESCRIPTOR

entryStack

protected Stack<StdCyclomaticComplexityRule.Entry> entryStack
Constructor Detail

StdCyclomaticComplexityRule

public StdCyclomaticComplexityRule()
Method Detail

visit

public Object visit(ASTCompilationUnit node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTIfStatement node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTCatchStatement node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTForStatement node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTDoStatement node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTSwitchStatement node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTWhileStatement node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTConditionalExpression node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTClassOrInterfaceDeclaration node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTMethodDeclaration node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTEnumDeclaration node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

visit

public Object visit(ASTConstructorDeclaration node,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule


Copyright © 2002-2015 InfoEther. All Rights Reserved.