From 4d4390c65d68aab6e67e974525eecac86eb00e6d Mon Sep 17 00:00:00 2001 From: Massimo Paladin Date: Mon, 5 Oct 2015 18:05:38 +0200 Subject: [PATCH] SONARJAVA-1272 Restore complexity api breaking change and deprecate some methods From JavaFileScannerContext deprecate: * int getComplexity(Tree tree) * int getMethodComplexity(ClassTree enclosingClass, MethodTree methodTree) * void addNoSonarLines(Set lines) --- .../java/checks/ClassComplexityCheck.java | 2 +- .../java/checks/MethodComplexityCheck.java | 2 +- .../main/java/org/sonar/java/Measurer.java | 4 ++-- .../org/sonar/java/model/VisitorsBridge.java | 14 +++++++++-- .../java/api/JavaFileScannerContext.java | 24 +++++++++++++++---- 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/java-checks/src/main/java/org/sonar/java/checks/ClassComplexityCheck.java b/java-checks/src/main/java/org/sonar/java/checks/ClassComplexityCheck.java index 4f1abe6ef39..aae8d0e2691 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/ClassComplexityCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/ClassComplexityCheck.java @@ -58,7 +58,7 @@ public List nodesToVisit() { @Override public void visitNode(Tree tree) { - List complexity = context.getComplexity(tree); + List complexity = context.getComplexityNodes(tree); int size = complexity.size(); if (size > max) { List flow = new ArrayList<>(); diff --git a/java-checks/src/main/java/org/sonar/java/checks/MethodComplexityCheck.java b/java-checks/src/main/java/org/sonar/java/checks/MethodComplexityCheck.java index 3a7ad8b22cf..cb26acc5a36 100644 --- a/java-checks/src/main/java/org/sonar/java/checks/MethodComplexityCheck.java +++ b/java-checks/src/main/java/org/sonar/java/checks/MethodComplexityCheck.java @@ -60,7 +60,7 @@ public List nodesToVisit() { @Override public void visitNode(Tree tree) { MethodTree methodTree = (MethodTree) tree; - List complexity = context.getComplexity(methodTree); + List complexity = context.getComplexityNodes(methodTree); int size = complexity.size(); if (size > max) { List flow = new ArrayList<>(); diff --git a/java-squid/src/main/java/org/sonar/java/Measurer.java b/java-squid/src/main/java/org/sonar/java/Measurer.java index 45b610bdcfa..9bf00d35990 100644 --- a/java-squid/src/main/java/org/sonar/java/Measurer.java +++ b/java-squid/src/main/java/org/sonar/java/Measurer.java @@ -99,7 +99,7 @@ public void scanFile(JavaFileScannerContext context) { context.addNoSonarLines(commentLinesVisitor.noSonarLines()); super.scanFile(context); //leave file. - int fileComplexity = context.getComplexity(context.getTree()).size(); + int fileComplexity = context.getComplexityNodes(context.getTree()).size(); saveMetricOnFile(CoreMetrics.CLASSES, classes); saveMetricOnFile(CoreMetrics.FUNCTIONS, methods); saveMetricOnFile(CoreMetrics.ACCESSORS, accessors); @@ -145,7 +145,7 @@ public void visitNode(Tree tree) { accessors++; } else { methods++; - int methodComplexity = context.getMethodComplexity(classTrees.peek(), methodTree).size(); + int methodComplexity = context.getMethodComplexityNodes(classTrees.peek(), methodTree).size(); methodComplexityDistribution.add(methodComplexity); complexityInMethods += methodComplexity; } diff --git a/java-squid/src/main/java/org/sonar/java/model/VisitorsBridge.java b/java-squid/src/main/java/org/sonar/java/model/VisitorsBridge.java index 644a8278e7a..e038aefa84b 100644 --- a/java-squid/src/main/java/org/sonar/java/model/VisitorsBridge.java +++ b/java-squid/src/main/java/org/sonar/java/model/VisitorsBridge.java @@ -329,12 +329,22 @@ public File getFile() { } @Override - public List getComplexity(Tree tree) { + public int getComplexity(Tree tree) { + return getComplexityNodes(tree).size(); + } + + @Override + public int getMethodComplexity(ClassTree enclosingClass, MethodTree methodTree) { + return getMethodComplexityNodes(enclosingClass, methodTree).size(); + } + + @Override + public List getComplexityNodes(Tree tree) { return complexityVisitor.scan(tree); } @Override - public List getMethodComplexity(ClassTree enclosingClass, MethodTree methodTree) { + public List getMethodComplexityNodes(ClassTree enclosingClass, MethodTree methodTree) { return complexityVisitor.scan(enclosingClass, methodTree); } diff --git a/java-squid/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java b/java-squid/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java index d3633e36451..de4a64c8a30 100644 --- a/java-squid/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java +++ b/java-squid/src/main/java/org/sonar/plugins/java/api/JavaFileScannerContext.java @@ -54,10 +54,26 @@ public interface JavaFileScannerContext { File getFile(); - List getComplexity(Tree tree); - - List getMethodComplexity(ClassTree enclosingClass, MethodTree methodTree); - + /** + * @deprecated As of release 3.6, replaced by {@link #getComplexityNodes(Tree)} + */ + @Deprecated + int getComplexity(Tree tree); + + /** + * @deprecated As of release 3.6, replaced by {@link #getMethodComplexityNodes(ClassTree, MethodTree)} + */ + @Deprecated + int getMethodComplexity(ClassTree enclosingClass, MethodTree methodTree); + + List getComplexityNodes(Tree tree); + + List getMethodComplexityNodes(ClassTree enclosingClass, MethodTree methodTree); + + /** + * @deprecated As of release 3.6, this method was not intended on a public interface + */ + @Deprecated void addNoSonarLines(Set lines); void reportIssue(JavaCheck javaCheck, Tree tree, String message);