Skip to content

Commit 312030e

Browse files
committed
Updated idea extensions on new design.
1 parent 03d8bbe commit 312030e

File tree

7 files changed

+44
-11
lines changed

7 files changed

+44
-11
lines changed

MetricsReloaded/utils/src/main/java/org/jetbrains/research/groups/ml_methods/utils/PSIUtil.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package org.jetbrains.research.groups.ml_methods.utils;
22

3+
import com.intellij.openapi.fileTypes.StdFileTypes;
4+
import com.intellij.openapi.project.Project;
5+
import com.intellij.openapi.roots.ProjectRootManager;
6+
import com.intellij.openapi.roots.TestSourcesFilter;
7+
import com.intellij.openapi.vfs.VirtualFile;
38
import com.intellij.psi.*;
49
import com.intellij.psi.util.PsiTreeUtil;
510
import org.jetbrains.annotations.NotNull;
611
import org.jetbrains.annotations.Nullable;
712

8-
import java.util.HashSet;
9-
import java.util.Optional;
10-
import java.util.Set;
13+
import java.util.*;
1114

1215
import static com.sixrr.metrics.utils.MethodUtils.calculateSignature;
1316

@@ -103,4 +106,29 @@ public static String getHumanReadableName(@Nullable PsiElement element) {
103106
}
104107
return "???";
105108
}
109+
110+
public static List<VirtualFile> getAllJavaFiles(Project project, boolean includeTestSources) {
111+
List<VirtualFile> javaVirtualFiles = new ArrayList<>();
112+
ProjectRootManager projectRootManager = ProjectRootManager.getInstance(project);
113+
projectRootManager.getFileIndex().iterateContent(virtualFile -> {
114+
if (isJavaFile(virtualFile)) {
115+
if (includeTestSources && TestSourcesFilter.isTestSources(virtualFile, project)) {
116+
javaVirtualFiles.add(virtualFile);
117+
}
118+
if (!TestSourcesFilter.isTestSources(virtualFile, project)) {
119+
javaVirtualFiles.add(virtualFile);
120+
}
121+
}
122+
return true;
123+
});
124+
return javaVirtualFiles;
125+
}
126+
127+
public static int getNumberOfJavaFiles(Project project, boolean includeTestSources) {
128+
return getAllJavaFiles(project, includeTestSources).size();
129+
}
130+
131+
public static boolean isJavaFile(VirtualFile virtualFile) {
132+
return virtualFile.getFileType().equals(StdFileTypes.JAVA);
133+
}
106134
}

core/src/main/java/org/jetbrains/research/groups/ml_methods/algorithm/AlgorithmsRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.util.Arrays;
66
import java.util.List;
7+
import java.util.Optional;
78

89
public class AlgorithmsRepository {
910
private static final List<Algorithm> ALGORITHMS = Arrays.asList(
@@ -12,6 +13,10 @@ public class AlgorithmsRepository {
1213
new HAC()
1314
);
1415

16+
public static Optional<Algorithm> getAlgorithmByName(String algorithmName) {
17+
return ALGORITHMS.stream().filter(algorithm -> algorithm.getDescriptionString().equals(algorithmName)).findAny();
18+
}
19+
1520
public enum AlgorithmType {
1621
ARI, CCDA, HAC
1722
}

features-extraction/src/main/java/org/jetbrains/research/groups/ml_methods/extraction/FeaturesExtractionApplicationStarter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public void main(String[] args) {
8989
LOGGER.info(
9090
refactoring.getMethod() + "->" +
9191
refactoring.getTargetClass() + System.lineSeparator() +
92-
extractMethodDeclaration(refactoring.getMethod()))
92+
extractMethodDeclaration(refactoring.getMethodOrThrow()))
9393
);
9494

9595
List<FeatureVector> vectors;

features-extraction/src/main/java/org/jetbrains/research/groups/ml_methods/extraction/FormatterApplicationStarter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void main(String[] args) {
9393
LOGGER.info(
9494
refactoring.getMethod() + "->" +
9595
refactoring.getTargetClass() + System.lineSeparator() +
96-
extractMethodDeclaration(refactoring.getMethod()))
96+
extractMethodDeclaration(refactoring.getMethodOrThrow()))
9797
);
9898
writer.write(refactorings, out);
9999
} catch (Throwable throwable) {

features-extraction/src/main/java/org/jetbrains/research/groups/ml_methods/extraction/MoveMethodFeaturesExtractor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ private MoveMethodFeaturesExtractor() {}
4949
List<FeatureVector> vectors = new ArrayList<>();
5050
for (MoveMethodRefactoring refactoring : refactorings) {
5151
MethodInfo methodInfo =
52-
repository.getMethodInfo(refactoring.getMethod()).orElseThrow(
52+
repository.getMethodInfo(refactoring.getMethodOrThrow()).orElseThrow(
5353
() -> new IllegalArgumentException(
5454
"Refactoring of method which was not found in scope"
5555
)
5656
);
5757

58-
vectors.add(extractor.extract(methodInfo, refactoring.getTargetClass()));
58+
vectors.add(extractor.extract(methodInfo, refactoring.getTargetClassOrThrow()));
5959
}
6060

6161
return vectors;

features-extraction/src/main/java/org/jetbrains/research/groups/ml_methods/extraction/refactoring/RefactoringTextRepresentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ public RefactoringTextRepresentation(String sourceClassQualifiedName, String met
4444
}
4545

4646
public RefactoringTextRepresentation(MoveMethodRefactoring refactoring) {
47-
PsiMethod method = refactoring.getMethod();
48-
PsiClass targetClass = refactoring.getTargetClass();
47+
PsiMethod method = refactoring.getMethodOrThrow();
48+
PsiClass targetClass = refactoring.getTargetClassOrThrow();
4949
if (method.getContainingClass() == null || method.getContainingClass().getQualifiedName() == null) {
5050
String errorMessage = "Refactorings without source qualified names are not supported. " +
5151
"Problem during creating refactoring for method " + method.getName() + ".";

refactorings-generation/src/main/java/org/jetbrains/research/groups/ml_methods/generation/RefactoringsGenerationApplicationStarter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import org.jetbrains.research.groups.ml_methods.generation.constraints.GenerationConstraintsFactory;
1616
import org.jetbrains.research.groups.ml_methods.generation.constraints.GenerationConstraintsFactory.GenerationConstraintType;
1717
import org.jetbrains.research.groups.ml_methods.refactoring.MoveMethodRefactoring;
18-
import org.jetbrains.research.groups.ml_methods.utils.PsiSearchUtil;
18+
import org.jetbrains.research.groups.ml_methods.utils.PSIUtil;
1919

2020
import java.io.IOException;
2121
import java.nio.file.Path;
@@ -72,7 +72,7 @@ public void main(String[] args) {
7272
System.err.println("Empty scope. Probably project cannot be open. Reload it with IDEA.");
7373
APPLICATION.exit(true, true);
7474
}
75-
int numberOfJavaFiles = PsiSearchUtil.getNumberOfJavaFiles(project, false);
75+
int numberOfJavaFiles = PSIUtil.getNumberOfJavaFiles(project, false);
7676
int numberOfRefactoringsToGenerate = (int) (numberOfJavaFiles * 0.03);
7777
List<MoveMethodRefactoring> generatedRefactoring = RefactoringsGenerator.generate(GenerationConstraintsFactory.get(
7878
GenerationConstraintType.ACCEPT_RELEVANT_PROPERTIES), numberOfRefactoringsToGenerate, scope);

0 commit comments

Comments
 (0)