From 145003404cea23384f6e4b065f1efc9996570c4a Mon Sep 17 00:00:00 2001 From: RamSaw Date: Fri, 31 Aug 2018 13:29:19 +0300 Subject: [PATCH 1/2] Added top refactorings bound parameter and print results now prints also to html file. --- .../evaluation/AlgorithmEvaluator.java | 30 ++++++++--- ...lgorithmsEvaluationApplicationStarter.java | 52 ++++++++++++------- .../evaluation/EvaluationResultsWriter.java | 6 ++- .../evaluation/JBAlgorithmEvaluator.java | 6 ++- .../ml_methods/evaluation/ProjectLoader.java | 7 ++- build.gradle | 2 +- 6 files changed, 72 insertions(+), 31 deletions(-) diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java index 49cb0e3c..17807e60 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java @@ -4,6 +4,7 @@ import com.intellij.openapi.project.Project; import com.sixrr.metrics.profile.MetricsProfile; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.research.groups.ml_methods.algorithm.Algorithm; import org.jetbrains.research.groups.ml_methods.algorithm.refactoring.CalculatedRefactoring; import org.jetbrains.research.groups.ml_methods.algorithm.refactoring.Refactoring; @@ -11,12 +12,25 @@ import org.jetbrains.research.groups.ml_methods.utils.MetricsProfilesUtil; import java.util.Collections; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; public class AlgorithmEvaluator { + @NotNull + private static List getTopRefactorings(@NotNull List calculatedRefactorings, + @NotNull Integer topRefactoringsBound) { + List result = calculatedRefactorings.stream() + .sorted(Comparator.comparingDouble(CalculatedRefactoring::getAccuracy).reversed()) + .limit(topRefactoringsBound) + .collect(Collectors.toList()); + return result; + } + @NotNull static EvaluationResult evaluate(@NotNull AnalysisScope scope, @NotNull Algorithm algorithm, - @NotNull List good, @NotNull List bad) { + @NotNull List good, @NotNull List bad, + @Nullable Integer topRefactoringsBound) { MetricsProfile profile = MetricsProfilesUtil.createProfile("evaluation_profile", algorithm.requiredMetrics()); RefactoringExecutionContext context = new RefactoringExecutionContext(scope.getProject(), scope, profile, @@ -25,21 +39,25 @@ static EvaluationResult evaluate(@NotNull AnalysisScope scope, @NotNull Algorith context.executeSynchronously(); List foundRefactorings = context.getAlgorithmResults().get(0).getRefactorings(); - return new ProjectEvaluationResult(foundRefactorings, good, bad, algorithm); + return new ProjectEvaluationResult(topRefactoringsBound == null ? + foundRefactorings : getTopRefactorings(foundRefactorings, topRefactoringsBound), good, bad, algorithm); } @NotNull static EvaluationResult evaluate(@NotNull Project project, @NotNull Algorithm algorithm, - @NotNull List good, @NotNull List bad) { - return evaluate(new AnalysisScope(project), algorithm, good, bad); + @NotNull List good, @NotNull List bad, + @Nullable Integer topRefactoringsBound) { + return evaluate(new AnalysisScope(project), algorithm, good, bad, topRefactoringsBound); } @NotNull static EvaluationResult evaluate(@NotNull ProjectToEvaluate projectToEvaluate, - @NotNull Algorithm algorithm) { + @NotNull Algorithm algorithm, + @Nullable Integer topRefactoringsBound) { return evaluate(projectToEvaluate.getProject(), algorithm, projectToEvaluate.getGoodRefactorings(), - projectToEvaluate.getBadRefactorings()); + projectToEvaluate.getBadRefactorings(), + topRefactoringsBound); } } diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmsEvaluationApplicationStarter.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmsEvaluationApplicationStarter.java index 607ffefc..1db77a90 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmsEvaluationApplicationStarter.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmsEvaluationApplicationStarter.java @@ -11,8 +11,11 @@ import org.jetbrains.research.groups.ml_methods.algorithm.Algorithm; import org.jetbrains.research.groups.ml_methods.algorithm.AlgorithmsRepository; +import java.io.PrintStream; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -21,7 +24,7 @@ public class AlgorithmsEvaluationApplicationStarter implements ApplicationStarter { private static final ApplicationEx APPLICATION = (ApplicationEx) ApplicationManager.getApplication(); - private static final int NUMBER_OF_ARGUMENTS = 4; + private static final int NUMBER_OF_ARGUMENTS = 5; private static final @NotNull Logger LOGGER = Logger.getLogger(AlgorithmsEvaluationApplicationStarter.class); @@ -56,6 +59,7 @@ public void main(String[] args) { Path datasetPath = Paths.get(args[1]); List algorithmsNames = Arrays.asList(args[2].split(",")); Path pathToSaveResults = Paths.get(args[3]); + Integer topRefactoringsBound = args[4].equals("") ? null : Integer.parseInt(args[4]); List algorithmsToEvaluate; if (algorithmsNames.get(0).equals("")) { algorithmsToEvaluate = AlgorithmsRepository.getAvailableAlgorithms(); @@ -67,11 +71,16 @@ public void main(String[] args) { } List evaluationResults = new ArrayList<>(); for (Algorithm algorithm : algorithmsToEvaluate) { - evaluationResults.add(JBAlgorithmEvaluator.evaluateDataset(datasetPath, algorithm)); + evaluationResults.add(JBAlgorithmEvaluator.evaluateDataset(datasetPath, algorithm, topRefactoringsBound)); + } + try (PrintStream writeResultsStream = new PrintStream(Files.newOutputStream(pathToSaveResults))) { + evaluationResults.forEach(evaluationResult -> { + printEvaluationResult(evaluationResult); + printEvaluationResult(evaluationResult, writeResultsStream, true); + }); } - evaluationResults.forEach(this::printEvaluationResult); if (!pathToSaveResults.toString().equals("")) { - EvaluationResultsWriter.writeTable(evaluationResults, pathToSaveResults); + EvaluationResultsWriter.writeTable(evaluationResults, pathToSaveResults, StandardOpenOption.APPEND); } } catch (Throwable throwable) { System.out.println(throwable.getClass().getSimpleName() + ": " + throwable.getMessage()); @@ -81,19 +90,26 @@ public void main(String[] args) { } } - private void printEvaluationResult(EvaluationResult evaluationResult) { - System.out.println("=================="); - System.out.println("EVALUATION RESULT FOR " + evaluationResult.getAlgorithm().getDescriptionString()); - System.out.println("Number of good: " + evaluationResult.getNumberOfGood()); - System.out.println("Number of found good: " + evaluationResult.getNumberOfFoundGood()); - System.out.println("Number of bad: " + evaluationResult.getNumberOfBad()); - System.out.println("Number of found bad: " + evaluationResult.getNumberOfFoundBad()); - System.out.println("Number of found others: " + evaluationResult.getNumberOfFoundOthers()); - System.out.println("Good precision: " + evaluationResult.getGoodPrecision()); - System.out.println("Bad precision: " + evaluationResult.getBadPrecision()); - System.out.println("Good recall: " + evaluationResult.getGoodRecall()); - System.out.println("Bad recall: " + evaluationResult.getBadRecall()); - System.out.println("Mean squared error (MSE): " + evaluationResult.getMSE()); - System.out.println("Mean error (ME): " + evaluationResult.getME()); + private void printEvaluationResult(@NotNull EvaluationResult evaluationResult) { + printEvaluationResult(evaluationResult, System.out, false); + } + + private void printEvaluationResult(@NotNull EvaluationResult evaluationResult, + @NotNull PrintStream printStream, + boolean isHtmlFile) { + String lineBreak = isHtmlFile ? "
" : System.lineSeparator(); + printStream.print("==================" + lineBreak); + printStream.print("EVALUATION RESULT FOR " + evaluationResult.getAlgorithm().getDescriptionString() + lineBreak); + printStream.print("Number of good: " + evaluationResult.getNumberOfGood() + lineBreak); + printStream.print("Number of found good: " + evaluationResult.getNumberOfFoundGood() + lineBreak); + printStream.print("Number of bad: " + evaluationResult.getNumberOfBad() + lineBreak); + printStream.print("Number of found bad: " + evaluationResult.getNumberOfFoundBad() + lineBreak); + printStream.print("Number of found others: " + evaluationResult.getNumberOfFoundOthers() + lineBreak); + printStream.print("Good precision: " + evaluationResult.getGoodPrecision() + lineBreak); + printStream.print("Bad precision: " + evaluationResult.getBadPrecision() + lineBreak); + printStream.print("Good recall: " + evaluationResult.getGoodRecall() + lineBreak); + printStream.print("Bad recall: " + evaluationResult.getBadRecall() + lineBreak); + printStream.print("Mean squared error (MSE): " + evaluationResult.getMSE() + lineBreak); + printStream.print("Mean error (ME): " + evaluationResult.getME() + lineBreak); } } diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/EvaluationResultsWriter.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/EvaluationResultsWriter.java index a6ba01cd..12324cab 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/EvaluationResultsWriter.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/EvaluationResultsWriter.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.nio.file.Files; +import java.nio.file.OpenOption; import java.nio.file.Path; import java.text.DecimalFormat; import java.util.*; @@ -25,7 +26,8 @@ class EvaluationResultsWriter { evaluationNames.put(Evaluation.ME, "Mean Error"); } - static void writeTable(List evaluationResults, Path outPath) throws IOException { + static void writeTable(List evaluationResults, Path outPath, OpenOption... options) + throws IOException { List lines = new ArrayList<>(); lines.add(""); @@ -56,7 +58,7 @@ static void writeTable(List evaluationResults, Path outPath) t } lines.add("
"); - Files.write(outPath, lines); + Files.write(outPath, lines, options); } static void writeJSON(List evaluationResults, Path outPath) throws IOException { diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java index ef340650..2dfec682 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java @@ -2,6 +2,7 @@ import org.apache.log4j.Logger; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.research.groups.ml_methods.algorithm.Algorithm; import org.jetbrains.research.groups.ml_methods.config.Logging; @@ -14,14 +15,15 @@ class JBAlgorithmEvaluator { private static final @NotNull Logger LOGGER = Logging.getLogger(AlgorithmsEvaluationApplicationStarter.class); - static EvaluationResult evaluateDataset(Path datasetPath, Algorithm algorithmToEvaluate) throws IOException { + static EvaluationResult evaluateDataset(Path datasetPath, Algorithm algorithmToEvaluate, + @Nullable Integer topRefactoringsBound) throws IOException { CombinedEvaluationResult combinedEvaluationResult = new CombinedEvaluationResult(algorithmToEvaluate); File[] rootFolders = Objects.requireNonNull(datasetPath.toFile().listFiles()); for (int i = 0; i < rootFolders.length; i++) { ProjectToEvaluate projectToEvaluate = ProjectLoader.loadForEvaluation(rootFolders[i].toPath()); LOGGER.info(i + "/" + rootFolders.length + " projects are evaluated"); LOGGER.info("Starting evaluation of new project: " + rootFolders[i].getAbsolutePath()); - combinedEvaluationResult.addResult(AlgorithmEvaluator.evaluate(projectToEvaluate, algorithmToEvaluate)); + combinedEvaluationResult.addResult(AlgorithmEvaluator.evaluate(projectToEvaluate, algorithmToEvaluate, topRefactoringsBound)); } return combinedEvaluationResult; } diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/ProjectLoader.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/ProjectLoader.java index b3386941..d9ce92a9 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/ProjectLoader.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/ProjectLoader.java @@ -14,9 +14,12 @@ class ProjectLoader { static ProjectToEvaluate loadForEvaluation(Path rootFolder) throws IOException { - final Project project = ProjectUtils.loadProjectWithAllDependencies(rootFolder.resolve("project")); + final Path projectPath = rootFolder.resolve("project"); + final Project project = ProjectUtils.loadProjectWithAllDependencies(projectPath); if (project == null) { - throw new IllegalArgumentException("Cannot open project. Check that path is correct."); + final String errorMessage = "Cannot open project. Check that path is correct and SDK is set up. " + + "Passed path: " + projectPath.toAbsolutePath(); + throw new IllegalArgumentException(errorMessage); } final AnalysisScope scope = new AnalysisScope(project); List goodRefactorings = RefactoringsLoader.load(rootFolder.resolve("good"), diff --git a/build.gradle b/build.gradle index 4c44f2bd..4f4e5aa9 100644 --- a/build.gradle +++ b/build.gradle @@ -65,7 +65,7 @@ task runAlgorithmsEvaluation(dependsOn: runIde) {} gradle.taskGraph.whenReady { graph -> if (graph.hasTask(runAlgorithmsEvaluation)) { - runIde.args 'algorithms-evaluation', "$pathToDataset", "$algorithmsNames", "$pathToSaveResults" + runIde.args 'algorithms-evaluation', "$pathToDataset", "$algorithmsNames", "$pathToSaveResults", "$topRefactoringsBound" runIde.jvmArgs '-Djava.awt.headless=true', '-Xmx4096m' } } \ No newline at end of file From 2acf3f2ce30a7fb71f48d3b4ea649e7715ea6b1c Mon Sep 17 00:00:00 2001 From: RamSaw Date: Fri, 31 Aug 2018 14:25:28 +0300 Subject: [PATCH 2/2] Fix evaluation build.gradle. --- .../java/com/sixrr/metrics/MetricsExecutionContext.java | 2 +- .../metrics/ui/dialogs/MetricsConfigurationDialog.java | 2 +- .../com/sixrr/metrics/ui/dialogs/ThresholdDialog.java | 2 +- .../sixrr/metrics/ui/dialogs/ThresholdTableModel.java | 2 +- .../metrics/ui/metricdisplay/EditThresholdsAction.java | 2 +- .../sixrr/metrics/ui/metricdisplay/MetricTableModel.java | 2 +- .../sixrr/metrics/ui/metricdisplay/MetricsDisplay.java | 4 +++- .../ui/metricdisplay/ShowDiffDistributionAction.java | 2 +- .../ui/metricdisplay/ShowDiffHistogramAction.java | 2 +- .../metrics/ui/metricdisplay/ShowDistributionAction.java | 2 +- .../metrics/ui/metricdisplay/ShowHistogramAction.java | 2 +- .../metrics/ui/metricdisplay/ShowPieChartAction.java | 2 +- .../com/sixrr/stockmetrics/DefaultMetricProvider.java | 4 ---- .../AdjustedLevelOrderClassCalculator.java | 2 +- .../NumMeaningfulClassesClassCalculator.java | 4 +++- .../CommentRatioInterfaceCalculator.java | 5 ++++- .../BlankLinesCountMethodCalculator.java | 4 +++- .../methodCalculators/FanInMethodCalculator.java | 5 ++++- .../methodCalculators/HalsteadMethodCalculator.java | 2 +- .../JavadocLinesOfCodeMethodCalculator.java | 2 +- .../methodCalculators/LinesOfCodeMethodCalculator.java | 2 +- .../methodCalculators/NumLocalVarsCalculator.java | 5 ++++- .../NumMeaningfulClassesMethodCalculator.java | 4 +++- .../methodCalculators/NumReturnPointsCalculator.java | 2 +- .../methodCalculators/QCPCorrectnessCalculator.java | 2 +- .../methodCalculators/QCPMaintainabilityCalculator.java | 2 +- .../methodCalculators/QCPReliabilityCalculator.java | 2 +- .../stockmetrics/methodMetrics/BranchCountMetric.java | 1 - .../stockmetrics/methodMetrics/DecisionCountMetric.java | 1 - .../methodMetrics/DistinctOperandsMetric.java | 1 - .../methodMetrics/DistinctOperatorsMetric.java | 1 - .../stockmetrics/methodMetrics/FanInMethodMetric.java | 1 - .../methodMetrics/NumCalledMethodsMetric.java | 1 - .../stockmetrics/methodMetrics/NumNullChecksMetric.java | 1 - .../packageCalculators/NumLambdasPackageCalculator.java | 5 ++++- .../LinesOfTestCodeProjectCalculator.java | 6 ++++-- .../SourceLinesOfCodeTestProjectCalculator.java | 2 +- .../main/java/com/sixrr/stockmetrics/utils/LineUtil.java | 8 ++++---- .../java/com/sixrr/stockmetrics/MetricAbstractTest.java | 1 - .../java/com/sixrr/stockmetrics/utils/LineUtilTest.java | 2 +- .../main/java/com/sixrr/metrics/utils/ProjectUtils.java | 5 +++++ algorithms-evaluation/build.gradle | 2 +- .../groups/ml_methods/evaluation/AlgorithmEvaluator.java | 5 ++--- .../ml_methods/evaluation/JBAlgorithmEvaluator.java | 3 ++- build.gradle | 9 --------- 45 files changed, 67 insertions(+), 61 deletions(-) diff --git a/MetricsReloaded/openapi/src/main/java/com/sixrr/metrics/MetricsExecutionContext.java b/MetricsReloaded/openapi/src/main/java/com/sixrr/metrics/MetricsExecutionContext.java index e9870597..8069e6af 100644 --- a/MetricsReloaded/openapi/src/main/java/com/sixrr/metrics/MetricsExecutionContext.java +++ b/MetricsReloaded/openapi/src/main/java/com/sixrr/metrics/MetricsExecutionContext.java @@ -16,9 +16,9 @@ package com.sixrr.metrics; +import com.intellij.analysis.AnalysisScope; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.UserDataHolder; -import com.intellij.analysis.AnalysisScope; /** * The MetricsExecutionContext is used . One MetricsExecutionContext is created for each metrics run, and shared by diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/MetricsConfigurationDialog.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/MetricsConfigurationDialog.java index 5987183b..d0946cfd 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/MetricsConfigurationDialog.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/MetricsConfigurationDialog.java @@ -38,10 +38,10 @@ import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; import com.sixrr.metrics.profile.MetricInstance; -import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.profile.MetricsProfile; import com.sixrr.metrics.profile.MetricsProfileRepository; import com.sixrr.metrics.ui.SearchUtil; +import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.utils.MetricsReloadedBundle; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdDialog.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdDialog.java index ce15842a..322b36a1 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdDialog.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdDialog.java @@ -19,8 +19,8 @@ import com.intellij.openapi.ui.DialogWrapper; import com.intellij.ui.ScrollPaneFactory; import com.intellij.ui.table.JBTable; -import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.metricModel.MetricsResult; +import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.utils.MetricsReloadedBundle; import org.jetbrains.annotations.Nullable; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdTableModel.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdTableModel.java index 4b2f51e2..26558fac 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdTableModel.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/dialogs/ThresholdTableModel.java @@ -16,8 +16,8 @@ package com.sixrr.metrics.ui.dialogs; import com.sixrr.metrics.Metric; -import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.metricModel.MetricsResult; +import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.utils.MetricsReloadedBundle; import javax.swing.table.AbstractTableModel; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/EditThresholdsAction.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/EditThresholdsAction.java index 10a95f87..cc3ad9bf 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/EditThresholdsAction.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/EditThresholdsAction.java @@ -23,8 +23,8 @@ import com.intellij.openapi.project.Project; import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; -import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.metricModel.MetricsResult; +import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.profile.MetricsProfile; import com.sixrr.metrics.profile.MetricsProfileRepository; import com.sixrr.metrics.ui.dialogs.ThresholdDialog; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricTableModel.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricTableModel.java index 3989e156..8252703a 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricTableModel.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricTableModel.java @@ -20,9 +20,9 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElement; import com.sixrr.metrics.Metric; -import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.metricModel.MetricInstanceAbbreviationComparator; import com.sixrr.metrics.metricModel.MetricsResult; +import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.profile.MetricTableSpecification; import com.sixrr.metrics.profile.MetricsProfile; import com.sixrr.metrics.profile.MetricsProfileRepository; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricsDisplay.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricsDisplay.java index f12d1005..338a108e 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricsDisplay.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/MetricsDisplay.java @@ -22,7 +22,9 @@ import com.intellij.ui.table.JBTable; import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; -import com.sixrr.metrics.metricModel.*; +import com.sixrr.metrics.metricModel.MetricInstanceAbbreviationComparator; +import com.sixrr.metrics.metricModel.MetricsResult; +import com.sixrr.metrics.metricModel.MetricsRun; import com.sixrr.metrics.profile.MetricDisplaySpecification; import com.sixrr.metrics.profile.MetricInstance; import com.sixrr.metrics.profile.MetricTableSpecification; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffDistributionAction.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffDistributionAction.java index 05e20373..b79ce5a2 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffDistributionAction.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffDistributionAction.java @@ -22,8 +22,8 @@ import com.sixrr.metrics.MetricCategory; import com.sixrr.metrics.MetricType; import com.sixrr.metrics.profile.MetricInstance; -import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.ui.charts.DiffDistributionDialog; +import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.utils.MetricsReloadedBundle; import javax.swing.*; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffHistogramAction.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffHistogramAction.java index 7085a715..3b7fa564 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffHistogramAction.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDiffHistogramAction.java @@ -21,8 +21,8 @@ import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; import com.sixrr.metrics.MetricType; -import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.ui.charts.DiffHistogramDialog; +import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.utils.MetricsReloadedBundle; import javax.swing.*; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDistributionAction.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDistributionAction.java index 58c12caa..87659d50 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDistributionAction.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowDistributionAction.java @@ -20,8 +20,8 @@ import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; import com.sixrr.metrics.MetricType; -import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.ui.charts.DistributionDialog; +import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.utils.MetricsReloadedBundle; import javax.swing.*; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowHistogramAction.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowHistogramAction.java index aba3bb6d..ac209843 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowHistogramAction.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowHistogramAction.java @@ -20,8 +20,8 @@ import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; import com.sixrr.metrics.MetricType; -import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.ui.charts.HistogramDialog; +import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.utils.MetricsReloadedBundle; import javax.swing.*; diff --git a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowPieChartAction.java b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowPieChartAction.java index 23419423..403a8f3c 100644 --- a/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowPieChartAction.java +++ b/MetricsReloaded/src/main/java/com/sixrr/metrics/ui/metricdisplay/ShowPieChartAction.java @@ -19,8 +19,8 @@ import com.intellij.openapi.project.Project; import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricCategory; -import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.ui.charts.PieChartDialog; +import com.sixrr.metrics.utils.MetricsCategoryNameUtil; import com.sixrr.metrics.utils.MetricsReloadedBundle; import javax.swing.*; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/DefaultMetricProvider.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/DefaultMetricProvider.java index 657270b0..b5d03da9 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/DefaultMetricProvider.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/DefaultMetricProvider.java @@ -19,13 +19,9 @@ import com.sixrr.metrics.Metric; import com.sixrr.metrics.MetricProvider; import com.sixrr.metrics.PrebuiltMetricProfile; -import com.sixrr.stockmetrics.classMetrics.SourceLinesOfCodeClassMetric; import com.sixrr.stockmetrics.fileTypeMetrics.*; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; -import com.sixrr.stockmetrics.interfaceMetrics.SourceLinesOfCodeInterfaceMetric; -import com.sixrr.stockmetrics.methodMetrics.SourceLinesOfCodeMethodMetric; import com.sixrr.stockmetrics.moduleMetrics.*; -import com.sixrr.stockmetrics.packageMetrics.*; import com.sixrr.stockmetrics.projectMetrics.*; import org.jetbrains.annotations.NotNull; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/AdjustedLevelOrderClassCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/AdjustedLevelOrderClassCalculator.java index 42882f5b..692230e7 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/AdjustedLevelOrderClassCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/AdjustedLevelOrderClassCalculator.java @@ -15,9 +15,9 @@ */ package com.sixrr.stockmetrics.classCalculators; +import com.intellij.psi.JavaRecursiveElementVisitor; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElementVisitor; -import com.intellij.psi.JavaRecursiveElementVisitor; import com.sixrr.stockmetrics.dependency.DependencyMap; public class AdjustedLevelOrderClassCalculator extends ClassCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/NumMeaningfulClassesClassCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/NumMeaningfulClassesClassCalculator.java index 976ea3f9..fbf5b846 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/NumMeaningfulClassesClassCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/classCalculators/NumMeaningfulClassesClassCalculator.java @@ -1,6 +1,8 @@ package com.sixrr.stockmetrics.classCalculators; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiElementVisitor; import org.jetbrains.research.groups.ml_methods.utils.ClassUtils; public class NumMeaningfulClassesClassCalculator extends ClassCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/interfaceCalculators/CommentRatioInterfaceCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/interfaceCalculators/CommentRatioInterfaceCalculator.java index 34b7c243..758c0ab0 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/interfaceCalculators/CommentRatioInterfaceCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/interfaceCalculators/CommentRatioInterfaceCalculator.java @@ -16,7 +16,10 @@ package com.sixrr.stockmetrics.interfaceCalculators; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiComment; +import com.intellij.psi.PsiElementVisitor; import com.sixrr.metrics.utils.ClassUtils; import com.sixrr.stockmetrics.utils.LineUtil; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/BlankLinesCountMethodCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/BlankLinesCountMethodCalculator.java index 6b01ba31..b695f628 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/BlankLinesCountMethodCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/BlankLinesCountMethodCalculator.java @@ -16,7 +16,9 @@ package com.sixrr.stockmetrics.methodCalculators; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiMethod; import com.sixrr.stockmetrics.utils.LineUtil; public class BlankLinesCountMethodCalculator extends MethodCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/FanInMethodCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/FanInMethodCalculator.java index d4eb0cd5..78f4cccb 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/FanInMethodCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/FanInMethodCalculator.java @@ -17,7 +17,10 @@ package com.sixrr.stockmetrics.methodCalculators; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiCallExpression; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiMethod; import java.util.HashMap; import java.util.HashSet; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/HalsteadMethodCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/HalsteadMethodCalculator.java index 5680c494..69947476 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/HalsteadMethodCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/HalsteadMethodCalculator.java @@ -19,8 +19,8 @@ import com.intellij.psi.JavaRecursiveElementVisitor; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiMethod; -import com.sixrr.stockmetrics.halstead.HalsteadVisitor; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.halstead.HalsteadVisitor; public abstract class HalsteadMethodCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/JavadocLinesOfCodeMethodCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/JavadocLinesOfCodeMethodCalculator.java index 696e11a5..3071d956 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/JavadocLinesOfCodeMethodCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/JavadocLinesOfCodeMethodCalculator.java @@ -20,8 +20,8 @@ import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiMethod; import com.intellij.psi.javadoc.PsiDocComment; -import com.sixrr.stockmetrics.utils.LineUtil; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.utils.LineUtil; public class JavadocLinesOfCodeMethodCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/LinesOfCodeMethodCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/LinesOfCodeMethodCalculator.java index eaded99f..ebc9e088 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/LinesOfCodeMethodCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/LinesOfCodeMethodCalculator.java @@ -19,8 +19,8 @@ import com.intellij.psi.JavaRecursiveElementVisitor; import com.intellij.psi.PsiElementVisitor; import com.intellij.psi.PsiMethod; -import com.sixrr.stockmetrics.utils.LineUtil; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.utils.LineUtil; public class LinesOfCodeMethodCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumLocalVarsCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumLocalVarsCalculator.java index ec1d5207..cc9bb179 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumLocalVarsCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumLocalVarsCalculator.java @@ -1,6 +1,9 @@ package com.sixrr.stockmetrics.methodCalculators; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiLocalVariable; +import com.intellij.psi.PsiMethod; import com.sixrr.metrics.utils.MethodUtils; public class NumLocalVarsCalculator extends MethodCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumMeaningfulClassesMethodCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumMeaningfulClassesMethodCalculator.java index 11fd8f2b..384dc861 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumMeaningfulClassesMethodCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumMeaningfulClassesMethodCalculator.java @@ -1,6 +1,8 @@ package com.sixrr.stockmetrics.methodCalculators; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiMethod; import com.sixrr.metrics.utils.MethodUtils; public class NumMeaningfulClassesMethodCalculator extends MethodCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumReturnPointsCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumReturnPointsCalculator.java index 13ec65a6..a8d3e6f2 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumReturnPointsCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/NumReturnPointsCalculator.java @@ -17,8 +17,8 @@ package com.sixrr.stockmetrics.methodCalculators; import com.intellij.psi.*; -import com.sixrr.stockmetrics.utils.ControlFlowUtils; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.utils.ControlFlowUtils; public class NumReturnPointsCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPCorrectnessCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPCorrectnessCalculator.java index 55053d98..646ec82b 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPCorrectnessCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPCorrectnessCalculator.java @@ -17,8 +17,8 @@ package com.sixrr.stockmetrics.methodCalculators; import com.intellij.psi.*; -import com.sixrr.stockmetrics.halstead.HalsteadVisitor; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.halstead.HalsteadVisitor; public class QCPCorrectnessCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPMaintainabilityCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPMaintainabilityCalculator.java index 0f525a65..90f8c9c6 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPMaintainabilityCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPMaintainabilityCalculator.java @@ -17,8 +17,8 @@ package com.sixrr.stockmetrics.methodCalculators; import com.intellij.psi.*; -import com.sixrr.stockmetrics.halstead.HalsteadVisitor; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.halstead.HalsteadVisitor; public class QCPMaintainabilityCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPReliabilityCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPReliabilityCalculator.java index f231aaf5..ecff3757 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPReliabilityCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodCalculators/QCPReliabilityCalculator.java @@ -17,8 +17,8 @@ package com.sixrr.stockmetrics.methodCalculators; import com.intellij.psi.*; -import com.sixrr.stockmetrics.halstead.HalsteadVisitor; import com.sixrr.metrics.utils.MethodUtils; +import com.sixrr.stockmetrics.halstead.HalsteadVisitor; public class QCPReliabilityCalculator extends MethodCalculator { private int methodNestingDepth = 0; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/BranchCountMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/BranchCountMetric.java index 76bf0b83..25b70ae9 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/BranchCountMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/BranchCountMetric.java @@ -20,7 +20,6 @@ import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; import com.sixrr.stockmetrics.methodCalculators.BranchCountCalculator; -import com.sixrr.stockmetrics.methodCalculators.DistinctOperandsCountCalculator; import org.jetbrains.annotations.NotNull; public class BranchCountMetric extends MethodMetric { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DecisionCountMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DecisionCountMetric.java index 96a0b9dd..f0a6e048 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DecisionCountMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DecisionCountMetric.java @@ -19,7 +19,6 @@ import com.sixrr.metrics.MetricCalculator; import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; -import com.sixrr.stockmetrics.methodCalculators.ConditionCountCalculator; import com.sixrr.stockmetrics.methodCalculators.DecisionCountCalculator; import org.jetbrains.annotations.NotNull; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperandsMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperandsMetric.java index 07c7fd9c..9471e713 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperandsMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperandsMetric.java @@ -20,7 +20,6 @@ import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; import com.sixrr.stockmetrics.methodCalculators.DistinctOperandsCountCalculator; -import com.sixrr.stockmetrics.methodCalculators.OperandsCountCalculator; import org.jetbrains.annotations.NotNull; public class DistinctOperandsMetric extends MethodMetric { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperatorsMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperatorsMetric.java index dd1a8370..2e629cb0 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperatorsMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/DistinctOperatorsMetric.java @@ -19,7 +19,6 @@ import com.sixrr.metrics.MetricCalculator; import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; -import com.sixrr.stockmetrics.methodCalculators.DistinctOperandsCountCalculator; import com.sixrr.stockmetrics.methodCalculators.DistinctOperatorsCountCalculator; import org.jetbrains.annotations.NotNull; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/FanInMethodMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/FanInMethodMetric.java index 84ad8242..f02d0e8b 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/FanInMethodMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/FanInMethodMetric.java @@ -20,7 +20,6 @@ import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; import com.sixrr.stockmetrics.methodCalculators.FanInMethodCalculator; -import com.sixrr.stockmetrics.methodCalculators.MethodCalculator; import org.jetbrains.annotations.NotNull; public class FanInMethodMetric extends MethodMetric { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumCalledMethodsMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumCalledMethodsMetric.java index 39268df9..ee706aed 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumCalledMethodsMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumCalledMethodsMetric.java @@ -3,7 +3,6 @@ import com.sixrr.metrics.MetricCalculator; import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; -import com.sixrr.stockmetrics.methodCalculators.AbstractNumCalledMethodsCalculator; import com.sixrr.stockmetrics.methodCalculators.NumCalledMethodsCalculator; import org.jetbrains.annotations.NotNull; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumNullChecksMetric.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumNullChecksMetric.java index f2cd091b..d8a65ec4 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumNullChecksMetric.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/methodMetrics/NumNullChecksMetric.java @@ -19,7 +19,6 @@ import com.sixrr.metrics.MetricCalculator; import com.sixrr.metrics.MetricType; import com.sixrr.stockmetrics.i18n.StockMetricsBundle; -import com.sixrr.stockmetrics.methodCalculators.NumControlStatementsCalculator; import com.sixrr.stockmetrics.methodCalculators.NumNullChecksCalculator; import org.jetbrains.annotations.NotNull; diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/packageCalculators/NumLambdasPackageCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/packageCalculators/NumLambdasPackageCalculator.java index 5f6d46e3..f77ad4ef 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/packageCalculators/NumLambdasPackageCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/packageCalculators/NumLambdasPackageCalculator.java @@ -16,7 +16,10 @@ package com.sixrr.stockmetrics.packageCalculators; -import com.intellij.psi.*; +import com.intellij.psi.JavaRecursiveElementVisitor; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiJavaFile; +import com.intellij.psi.PsiLambdaExpression; /** * @author Bas Leijdekkers diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/LinesOfTestCodeProjectCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/LinesOfTestCodeProjectCalculator.java index 8b032264..b4baf4da 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/LinesOfTestCodeProjectCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/LinesOfTestCodeProjectCalculator.java @@ -16,9 +16,11 @@ package com.sixrr.stockmetrics.projectCalculators; -import com.intellij.psi.*; -import com.sixrr.stockmetrics.utils.LineUtil; +import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.PsiFile; +import com.intellij.psi.PsiRecursiveElementVisitor; import com.sixrr.metrics.utils.TestUtils; +import com.sixrr.stockmetrics.utils.LineUtil; public class LinesOfTestCodeProjectCalculator extends ElementCountProjectCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/SourceLinesOfCodeTestProjectCalculator.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/SourceLinesOfCodeTestProjectCalculator.java index aa021b30..9e11b630 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/SourceLinesOfCodeTestProjectCalculator.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/projectCalculators/SourceLinesOfCodeTestProjectCalculator.java @@ -18,8 +18,8 @@ import com.intellij.openapi.fileTypes.PlainTextFileType; import com.intellij.psi.*; -import com.sixrr.stockmetrics.utils.LineUtil; import com.sixrr.metrics.utils.TestUtils; +import com.sixrr.stockmetrics.utils.LineUtil; public class SourceLinesOfCodeTestProjectCalculator extends ElementCountProjectCalculator { diff --git a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/utils/LineUtil.java b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/utils/LineUtil.java index 07180e68..ccd92624 100644 --- a/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/utils/LineUtil.java +++ b/MetricsReloaded/stockmetrics/src/main/java/com/sixrr/stockmetrics/utils/LineUtil.java @@ -16,12 +16,12 @@ package com.sixrr.stockmetrics.utils; -import com.intellij.psi.*; +import com.intellij.psi.PsiComment; +import com.intellij.psi.PsiCompiledElement; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiWhiteSpace; import org.apache.commons.lang.StringUtils; -import java.io.BufferedReader; -import java.util.StringTokenizer; - public final class LineUtil { private LineUtil() {} diff --git a/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/MetricAbstractTest.java b/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/MetricAbstractTest.java index b8f1b05b..2171d2cd 100755 --- a/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/MetricAbstractTest.java +++ b/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/MetricAbstractTest.java @@ -10,7 +10,6 @@ import com.sixrr.metrics.MetricCalculator; import com.sixrr.metrics.MetricsExecutionContext; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.nio.file.Paths; import java.util.Collections; diff --git a/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/utils/LineUtilTest.java b/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/utils/LineUtilTest.java index 474fdb26..e3f3089e 100644 --- a/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/utils/LineUtilTest.java +++ b/MetricsReloaded/stockmetrics/src/test/java/com/sixrr/stockmetrics/utils/LineUtilTest.java @@ -18,7 +18,7 @@ import org.junit.Test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; /** * @author Bas Leijdekkers diff --git a/MetricsReloaded/utils/src/main/java/com/sixrr/metrics/utils/ProjectUtils.java b/MetricsReloaded/utils/src/main/java/com/sixrr/metrics/utils/ProjectUtils.java index c1a9645e..003adbea 100644 --- a/MetricsReloaded/utils/src/main/java/com/sixrr/metrics/utils/ProjectUtils.java +++ b/MetricsReloaded/utils/src/main/java/com/sixrr/metrics/utils/ProjectUtils.java @@ -26,6 +26,11 @@ public static Project loadProjectWithAllDependencies(Path projectPath) { } final Project project = ProjectUtil.openOrImport(projectPath.toAbsolutePath().toString(), null, false); + System.out.println("Project: " + project); + if (project != null) { + System.out.println("SDK : " + ProjectRootManager.getInstance(project).getProjectSdk()); + System.out.println("is project initialized : " + project.isInitialized()); + } return project == null || ProjectRootManager.getInstance(project).getProjectSdk() == null || !project.isInitialized() ? diff --git a/algorithms-evaluation/build.gradle b/algorithms-evaluation/build.gradle index 9e638991..7593e5ae 100644 --- a/algorithms-evaluation/build.gradle +++ b/algorithms-evaluation/build.gradle @@ -15,7 +15,7 @@ task runAlgorithmsEvaluation(dependsOn: runIde) {} gradle.taskGraph.whenReady { graph -> if (graph.hasTask(runAlgorithmsEvaluation)) { - runIde.args 'algorithms-evaluation', "$pathToDataset", "$algorithmsNames", "$pathToSaveResults" + runIde.args 'algorithms-evaluation', "$pathToDataset", "$algorithmsNames", "$pathToSaveResults", "$topRefactoringsBound" runIde.jvmArgs '-Djava.awt.headless=true', '-Xmx4096m' } } \ No newline at end of file diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java index 2114491e..6f87c546 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/AlgorithmEvaluator.java @@ -20,11 +20,10 @@ public class AlgorithmEvaluator { @NotNull private static List getTopRefactorings(@NotNull List calculatedRefactorings, @NotNull Integer topRefactoringsBound) { - List result = calculatedRefactorings.stream() + return calculatedRefactorings.stream() .sorted(Comparator.comparingDouble(CalculatedRefactoring::getAccuracy).reversed()) .limit(topRefactoringsBound) .collect(Collectors.toList()); - return result; } @NotNull @@ -47,7 +46,7 @@ static EvaluationResult evaluate(@NotNull AnalysisScope scope, @NotNull static EvaluationResult evaluate(@NotNull Project project, @NotNull Algorithm algorithm, - @NotNull List good, @NotNull List bad, + @NotNull List good, @NotNull List bad, @Nullable Integer topRefactoringsBound) { return evaluate(new AnalysisScope(project), algorithm, good, bad, topRefactoringsBound); } diff --git a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java index f948802c..88b2e279 100644 --- a/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java +++ b/algorithms-evaluation/src/main/java/org/jetbrains/research/groups/ml_methods/evaluation/JBAlgorithmEvaluator.java @@ -23,7 +23,8 @@ static EvaluationResult evaluateDataset(Path datasetPath, Algorithm algorithmToE ProjectToEvaluate projectToEvaluate = ProjectLoader.loadForEvaluation(rootFolders[i].toPath()); LOGGER.info(i + "/" + rootFolders.length + " projects are evaluated"); LOGGER.info("Starting evaluation of new project: " + rootFolders[i].getAbsolutePath()); - combinedEvaluationResult.addResult(AlgorithmEvaluator.evaluate(projectToEvaluate, algorithmToEvaluate, topRefactoringsBound)); + combinedEvaluationResult.addResult(AlgorithmEvaluator.evaluate(projectToEvaluate, algorithmToEvaluate, + topRefactoringsBound)); } return combinedEvaluationResult; } diff --git a/build.gradle b/build.gradle index a70b66ea..741090ea 100755 --- a/build.gradle +++ b/build.gradle @@ -32,13 +32,4 @@ dependencies { compile project(':core') compile files('lib/args4j-2.32.jar', 'lib/jcommon-0.9.1.jar', 'lib/jfreechart-0.9.16.jar') -} - -task runAlgorithmsEvaluation(dependsOn: runIde) {} - -gradle.taskGraph.whenReady { graph -> - if (graph.hasTask(runAlgorithmsEvaluation)) { - runIde.args 'algorithms-evaluation', "$pathToDataset", "$algorithmsNames", "$pathToSaveResults", "$topRefactoringsBound" - runIde.jvmArgs '-Djava.awt.headless=true', '-Xmx4096m' - } } \ No newline at end of file