Class StdCyclomaticComplexityRule

  • All Implemented Interfaces:
    ApexParserVisitor, net.sourceforge.pmd.lang.rule.ImmutableLanguage, net.sourceforge.pmd.properties.PropertySource, net.sourceforge.pmd.renderers.CodeClimateRule, net.sourceforge.pmd.Rule

    public class StdCyclomaticComplexityRule
    extends AbstractApexRule
    Implements the standard cyclomatic complexity rule

    Standard rules: +1 for each decision point, but not including boolean operators unlike CyclomaticComplexityRule.

    Since:
    June 18, 2014
    Author:
    ported on Java version of Alan Hohn, based on work by Donald A. Leckie
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  StdCyclomaticComplexityRule.Entry  
      • Nested classes/interfaces inherited from interface net.sourceforge.pmd.renderers.CodeClimateRule

        net.sourceforge.pmd.renderers.CodeClimateRule.CodeClimateCategory
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Stack<StdCyclomaticComplexityRule.Entry> entryStack  
      static net.sourceforge.pmd.properties.PropertyDescriptor<java.lang.Integer> REPORT_LEVEL_DESCRIPTOR  
      static net.sourceforge.pmd.properties.PropertyDescriptor<java.lang.Boolean> SHOW_CLASSES_COMPLEXITY_DESCRIPTOR  
      static net.sourceforge.pmd.properties.PropertyDescriptor<java.lang.Boolean> SHOW_METHODS_COMPLEXITY_DESCRIPTOR  
      • Fields inherited from class net.sourceforge.pmd.properties.AbstractPropertySource

        propertyDescriptors, propertyValuesByDescriptor
      • Fields inherited from interface net.sourceforge.pmd.renderers.CodeClimateRule

        CODECLIMATE_BLOCK_HIGHLIGHTING, CODECLIMATE_CATEGORIES, CODECLIMATE_REMEDIATION_MULTIPLIER
      • Fields inherited from interface net.sourceforge.pmd.Rule

        VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object visit​(ASTBooleanExpression node, java.lang.Object data)  
      java.lang.Object visit​(ASTDoLoopStatement node, java.lang.Object data)  
      java.lang.Object visit​(ASTForEachStatement node, java.lang.Object data)  
      java.lang.Object visit​(ASTForLoopStatement node, java.lang.Object data)  
      java.lang.Object visit​(ASTIfBlockStatement node, java.lang.Object data)  
      java.lang.Object visit​(ASTMethod node, java.lang.Object data)  
      java.lang.Object visit​(ASTTernaryExpression node, java.lang.Object data)  
      java.lang.Object visit​(ASTTryCatchFinallyBlockStatement node, java.lang.Object data)  
      java.lang.Object visit​(ASTUserClass node, java.lang.Object data)  
      java.lang.Object visit​(ASTUserEnum node, java.lang.Object data)  
      java.lang.Object visit​(ASTUserInterface node, java.lang.Object data)  
      java.lang.Object visit​(ASTUserTrigger node, java.lang.Object data)  
      java.lang.Object visit​(ASTWhileLoopStatement node, java.lang.Object data)  
      • 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, getPriority, getPropertySourceType, 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, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, isPropertyOverridden, 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, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, isPropertyOverridden, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
      • Methods inherited from interface net.sourceforge.pmd.Rule

        addExample, addRuleChainVisit, addRuleChainVisit, deepCopy, end, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getPriority, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, 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