Refactor classes accordingly to review comments

This commit is contained in:
Denis Borovikov
2021-05-24 11:25:40 +01:00
parent 3de7481f36
commit ad9a422240
4 changed files with 14 additions and 18 deletions

View File

@ -26,7 +26,7 @@ public enum JavaOperationMetricKey implements MetricKey<MethodLikeNode> {
*
* @see CognitiveComplexityMetric
*/
COGNITIVE(new CognitiveComplexityMetric()),
COGNITIVE_COMPLEXITY(new CognitiveComplexityMetric()),
/**
* Access to Foreign Data.

View File

@ -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();
}

View File

@ -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 {

View File

@ -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",