Refactor classes accordingly to review comments
This commit is contained in:
@ -26,7 +26,7 @@ public enum JavaOperationMetricKey implements MetricKey<MethodLikeNode> {
|
||||
*
|
||||
* @see CognitiveComplexityMetric
|
||||
*/
|
||||
COGNITIVE(new CognitiveComplexityMetric()),
|
||||
COGNITIVE_COMPLEXITY(new CognitiveComplexityMetric()),
|
||||
|
||||
/**
|
||||
* Access to Foreign Data.
|
||||
|
@ -6,8 +6,8 @@ package net.sourceforge.pmd.lang.java.metrics.impl;
|
||||
|
||||
|
||||
import net.sourceforge.pmd.lang.java.ast.MethodLikeNode;
|
||||
import net.sourceforge.pmd.lang.java.metrics.impl.visitors.CognitiveComplexityBaseVisitor;
|
||||
import net.sourceforge.pmd.lang.java.metrics.impl.visitors.CognitiveComplexityBaseVisitor.State;
|
||||
import net.sourceforge.pmd.lang.java.metrics.impl.internal.CognitiveComplexityVisitor;
|
||||
import net.sourceforge.pmd.lang.java.metrics.impl.internal.CognitiveComplexityVisitor.State;
|
||||
import net.sourceforge.pmd.lang.metrics.MetricOptions;
|
||||
|
||||
/**
|
||||
@ -24,7 +24,7 @@ public class CognitiveComplexityMetric extends AbstractJavaOperationMetric {
|
||||
@Override
|
||||
public double computeFor(MethodLikeNode node, MetricOptions options) {
|
||||
final State resultingState = (State) node
|
||||
.jjtAccept(CognitiveComplexityBaseVisitor.INSTANCE, new State());
|
||||
.jjtAccept(CognitiveComplexityVisitor.INSTANCE, new State());
|
||||
return resultingState.getComplexity();
|
||||
}
|
||||
|
||||
|
@ -2,11 +2,10 @@
|
||||
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
|
||||
*/
|
||||
|
||||
package net.sourceforge.pmd.lang.java.metrics.impl.visitors;
|
||||
package net.sourceforge.pmd.lang.java.metrics.impl.internal;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import net.sourceforge.pmd.annotation.InternalApi;
|
||||
import net.sourceforge.pmd.lang.ast.Node;
|
||||
import net.sourceforge.pmd.lang.java.ast.ASTBlockStatement;
|
||||
import net.sourceforge.pmd.lang.java.ast.ASTBreakStatement;
|
||||
@ -28,24 +27,21 @@ import net.sourceforge.pmd.lang.java.ast.ASTSwitchStatement;
|
||||
import net.sourceforge.pmd.lang.java.ast.ASTUnaryExpressionNotPlusMinus;
|
||||
import net.sourceforge.pmd.lang.java.ast.ASTWhileStatement;
|
||||
import net.sourceforge.pmd.lang.java.ast.JavaNode;
|
||||
import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorReducedAdapter;
|
||||
import net.sourceforge.pmd.lang.java.metrics.impl.visitors.CognitiveComplexityBaseVisitor.State.BooleanOp;
|
||||
import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter;
|
||||
import net.sourceforge.pmd.lang.java.metrics.impl.internal.CognitiveComplexityVisitor.State.BooleanOp;
|
||||
import net.sourceforge.pmd.lang.java.symboltable.MethodNameDeclaration;
|
||||
|
||||
|
||||
/**
|
||||
* Default visitor for the calculation of Cognitive Complexity.
|
||||
* Visitor for the Cognitive Complexity metric.
|
||||
*
|
||||
* @see net.sourceforge.pmd.lang.java.metrics.impl.CognitiveComplexityMetric
|
||||
*
|
||||
* @deprecated Visitor decorators are deprecated because they lead to fragile code.
|
||||
* @author Denis Borovikov
|
||||
* @since 6.35.0
|
||||
*/
|
||||
@Deprecated
|
||||
@InternalApi
|
||||
public class CognitiveComplexityBaseVisitor extends JavaParserVisitorReducedAdapter {
|
||||
public class CognitiveComplexityVisitor extends JavaParserVisitorAdapter {
|
||||
|
||||
/** Instance. */
|
||||
public static final CognitiveComplexityBaseVisitor INSTANCE = new CognitiveComplexityBaseVisitor();
|
||||
public static final CognitiveComplexityVisitor INSTANCE = new CognitiveComplexityVisitor();
|
||||
|
||||
|
||||
public static class State {
|
@ -37,11 +37,11 @@ public class CognitiveComplexityRule extends AbstractJavaMetricsRule {
|
||||
|
||||
@Override
|
||||
public final Object visit(ASTMethodOrConstructorDeclaration node, Object data) {
|
||||
if (!JavaOperationMetricKey.COGNITIVE.supports(node)) {
|
||||
if (!JavaOperationMetricKey.COGNITIVE_COMPLEXITY.supports(node)) {
|
||||
return data;
|
||||
}
|
||||
|
||||
int cognitive = (int) MetricsUtil.computeMetric(JavaOperationMetricKey.COGNITIVE, node);
|
||||
int cognitive = (int) MetricsUtil.computeMetric(JavaOperationMetricKey.COGNITIVE_COMPLEXITY, node);
|
||||
final int reportLevel = getReportLevel();
|
||||
if (cognitive >= reportLevel) {
|
||||
addViolation(data, node, new String[] {node instanceof ASTMethodDeclaration ? "method" : "constructor",
|
||||
|
Reference in New Issue
Block a user