Class StdCyclomaticComplexityRule
- java.lang.Object
-
- net.sourceforge.pmd.properties.AbstractPropertySource
-
- net.sourceforge.pmd.lang.rule.AbstractRule
-
- net.sourceforge.pmd.lang.apex.rule.AbstractApexRule
-
- net.sourceforge.pmd.lang.apex.rule.design.StdCyclomaticComplexityRule
-
- All Implemented Interfaces:
ApexParserVisitor,ApexVisitor<Object,Object>,AstVisitor<Object,Object>,PropertySource,Rule
public class StdCyclomaticComplexityRule extends AbstractApexRule
Implements the standard cyclomatic complexity ruleStandard 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 classStdCyclomaticComplexityRule.Entry
-
Field Summary
Fields Modifier and Type Field Description protected Deque<StdCyclomaticComplexityRule.Entry>entryStackstatic PropertyDescriptor<Integer>REPORT_LEVEL_DESCRIPTORstatic PropertyDescriptor<Boolean>SHOW_CLASSES_COMPLEXITY_DESCRIPTORstatic PropertyDescriptor<Boolean>SHOW_METHODS_COMPLEXITY_DESCRIPTOR-
Fields inherited from class net.sourceforge.pmd.properties.AbstractPropertySource
propertyDescriptors, propertyValuesByDescriptor
-
Fields inherited from interface net.sourceforge.pmd.Rule
VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
-
-
Constructor Summary
Constructors Constructor Description StdCyclomaticComplexityRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidstart(RuleContext ctx)Objectvisit(ASTBooleanExpression node, Object data)Objectvisit(ASTDoLoopStatement node, Object data)Objectvisit(ASTForEachStatement node, Object data)Objectvisit(ASTForLoopStatement node, Object data)Objectvisit(ASTIfBlockStatement node, Object data)Objectvisit(ASTMethod node, Object data)Objectvisit(ASTTernaryExpression node, Object data)Objectvisit(ASTTryCatchFinallyBlockStatement node, Object data)Objectvisit(ASTUserClass node, Object data)Objectvisit(ASTUserEnum node, Object data)Objectvisit(ASTUserInterface node, Object data)Objectvisit(ASTUserTrigger node, Object data)Objectvisit(ASTWhileLoopStatement node, Object data)-
Methods inherited from class net.sourceforge.pmd.lang.apex.rule.AbstractApexRule
apply
-
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule
addExample, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, asCtx, buildTargetSelector, deepCopy, deepCopyValuesTo, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getPriority, getPropertySourceType, getRuleClass, getRuleSetName, getSince, getTargetSelector, hashCode, isDeprecated, setDeprecated, setDescription, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setName, setPriority, setRuleClass, setRuleSetName, setSince
-
Methods inherited from class net.sourceforge.pmd.properties.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, isPropertyOverridden, setProperty
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor
visit, visitApexNode, visitNode
-
Methods inherited from interface net.sourceforge.pmd.lang.apex.ast.ApexVisitor
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
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.AstVisitor
cannotVisit
-
Methods inherited from interface net.sourceforge.pmd.properties.PropertySource
definePropertyDescriptor, dysfunctionReason, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, isPropertyOverridden, setProperty
-
Methods inherited from interface net.sourceforge.pmd.Rule
initialize
-
-
-
-
Field Detail
-
REPORT_LEVEL_DESCRIPTOR
public static final PropertyDescriptor<Integer> REPORT_LEVEL_DESCRIPTOR
-
SHOW_CLASSES_COMPLEXITY_DESCRIPTOR
public static final PropertyDescriptor<Boolean> SHOW_CLASSES_COMPLEXITY_DESCRIPTOR
-
SHOW_METHODS_COMPLEXITY_DESCRIPTOR
public static final PropertyDescriptor<Boolean> SHOW_METHODS_COMPLEXITY_DESCRIPTOR
-
entryStack
protected Deque<StdCyclomaticComplexityRule.Entry> entryStack
-
-
Method Detail
-
start
public void start(RuleContext ctx)
- Specified by:
startin interfaceRule- Overrides:
startin classAbstractRule
-
visit
public Object visit(ASTUserClass node, Object data)
-
visit
public Object visit(ASTUserTrigger node, Object data)
-
visit
public Object visit(ASTUserInterface node, Object data)
-
visit
public Object visit(ASTUserEnum node, Object data)
-
visit
public Object visit(ASTIfBlockStatement node, Object data)
-
visit
public Object visit(ASTTryCatchFinallyBlockStatement node, Object data)
-
visit
public Object visit(ASTForLoopStatement node, Object data)
-
visit
public Object visit(ASTForEachStatement node, Object data)
-
visit
public Object visit(ASTWhileLoopStatement node, Object data)
-
visit
public Object visit(ASTDoLoopStatement node, Object data)
-
visit
public Object visit(ASTTernaryExpression node, Object data)
-
visit
public Object visit(ASTBooleanExpression node, Object data)
-
-