Skip to content

Commit ba62e56

Browse files
committed
Refactoring java-coverage-impl.
1 parent bfeef15 commit ba62e56

14 files changed

Lines changed: 495 additions & 526 deletions

java-coverage-impl/src/main/java/com/intellij/java/coverage/CoverageJavaRunConfigurationExtension.java

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,22 @@
4848
*/
4949
@ExtensionImpl
5050
public class CoverageJavaRunConfigurationExtension extends RunConfigurationExtension {
51+
@Override
5152
public void attachToProcess(
52-
@Nonnull final RunConfigurationBase configuration,
53+
@Nonnull RunConfigurationBase configuration,
5354
@Nonnull ProcessHandler handler,
5455
RunnerSettings runnerSettings
5556
) {
5657
CoverageDataManager.getInstance(configuration.getProject()).attachToProcess(handler, configuration, runnerSettings);
5758
}
5859

60+
@Override
5961
@Nullable
6062
public SettingsEditor createEditor(@Nonnull RunConfigurationBase configuration) {
6163
return new CoverageConfigurable(configuration);
6264
}
6365

66+
@Override
6467
public String getEditorTitle() {
6568
return CoverageEngine.getEditorTitle();
6669
}
@@ -71,25 +74,24 @@ public String getSerializationId() {
7174
return "coverage";
7275
}
7376

77+
@Override
7478
public void updateJavaParameters(RunConfigurationBase configuration, OwnJavaParameters params, RunnerSettings runnerSettings) {
7579
if (!isApplicableFor(configuration)) {
7680
return;
7781
}
7882

79-
final JavaCoverageEnabledConfiguration coverageConfig = JavaCoverageEnabledConfiguration.getFrom(configuration);
83+
JavaCoverageEnabledConfiguration coverageConfig = JavaCoverageEnabledConfiguration.getFrom(configuration);
8084
//noinspection ConstantConditions
8185
coverageConfig.setCurrentCoverageSuite(null);
82-
final CoverageRunner coverageRunner = coverageConfig.getCoverageRunner();
86+
CoverageRunner coverageRunner = coverageConfig.getCoverageRunner();
8387
if (runnerSettings instanceof CoverageRunnerData && coverageRunner != null) {
84-
final CoverageDataManager coverageDataManager = CoverageDataManager.getInstance(configuration.getProject());
88+
CoverageDataManager coverageDataManager = CoverageDataManager.getInstance(configuration.getProject());
8589
coverageConfig.setCurrentCoverageSuite(coverageDataManager.addCoverageSuite(coverageConfig));
8690
coverageConfig.appendCoverageArgument(params);
8791

88-
final Sdk jdk = params.getJdk();
89-
if (jdk != null && JavaSdkTypeUtil.isOfVersionOrHigher(
90-
jdk,
91-
JavaSdkVersion.JDK_1_7
92-
) && coverageRunner instanceof JavaCoverageRunner && !((JavaCoverageRunner) coverageRunner).isJdk7Compatible()) {
92+
Sdk jdk = params.getJdk();
93+
if (jdk != null && JavaSdkTypeUtil.isOfVersionOrHigher(jdk, JavaSdkVersion.JDK_1_7)
94+
&& coverageRunner instanceof JavaCoverageRunner javaCoverageRunner && !javaCoverageRunner.isJdk7Compatible()) {
9395
Notifications.Bus.notify(new Notification(
9496
NotificationGroup.balloonGroup("Coverage"),
9597
"Coverage instrumentation is not fully compatible with JDK 7",
@@ -103,7 +105,7 @@ public void updateJavaParameters(RunConfigurationBase configuration, OwnJavaPara
103105
}
104106

105107
@Override
106-
public void readExternal(@Nonnull final RunConfigurationBase runConfiguration, @Nonnull Element element) throws InvalidDataException {
108+
public void readExternal(@Nonnull RunConfigurationBase runConfiguration, @Nonnull Element element) throws InvalidDataException {
107109
if (!isApplicableFor(runConfiguration)) {
108110
return;
109111
}
@@ -123,13 +125,13 @@ public void writeExternal(@Nonnull RunConfigurationBase runConfiguration, @Nonnu
123125

124126
@Override
125127
public void extendCreatedConfiguration(@Nonnull RunConfigurationBase runJavaConfiguration, @Nonnull Location location) {
126-
final JavaCoverageEnabledConfiguration coverageEnabledConfiguration =
128+
JavaCoverageEnabledConfiguration coverageEnabledConfiguration =
127129
JavaCoverageEnabledConfiguration.getFrom(runJavaConfiguration);
128130
assert coverageEnabledConfiguration != null;
129-
if (runJavaConfiguration instanceof CommonJavaRunConfigurationParameters) {
131+
if (runJavaConfiguration instanceof CommonJavaRunConfigurationParameters commonJavaRunConfigurationParameters) {
130132
coverageEnabledConfiguration.setUpCoverageFilters(
131-
((CommonJavaRunConfigurationParameters) runJavaConfiguration).getRunClass(),
132-
((CommonJavaRunConfigurationParameters) runJavaConfiguration).getPackage()
133+
commonJavaRunConfigurationParameters.getRunClass(),
134+
commonJavaRunConfigurationParameters.getPackage()
133135
);
134136
}
135137
}
@@ -153,28 +155,28 @@ public RefactoringElementListener wrapElementListener(
153155
if (!isApplicableFor(configuration)) {
154156
return listener;
155157
}
156-
final JavaCoverageEnabledConfiguration coverageEnabledConfiguration = JavaCoverageEnabledConfiguration.getFrom(configuration);
158+
JavaCoverageEnabledConfiguration coverageEnabledConfiguration = JavaCoverageEnabledConfiguration.getFrom(configuration);
157159
if (coverageEnabledConfiguration != null) {
158-
final Project project = configuration.getProject();
159-
final ClassFilter[] patterns = coverageEnabledConfiguration.getCoveragePatterns();
160-
final String[] filters = getFilters(coverageEnabledConfiguration);
160+
Project project = configuration.getProject();
161+
ClassFilter[] patterns = coverageEnabledConfiguration.getCoveragePatterns();
162+
String[] filters = getFilters(coverageEnabledConfiguration);
161163
if (patterns != null) {
162164
assert filters != null;
163-
if (element instanceof PsiClass) {
164-
final int idx = ArrayUtil.find(filters, ((PsiClass) element).getQualifiedName());
165+
if (element instanceof PsiClass psiClass) {
166+
int idx = ArrayUtil.find(filters, psiClass.getQualifiedName());
165167
if (idx > -1) {
166-
final RefactoringListeners.Accessor<PsiClass> accessor = new MyClassAccessor(project, patterns, idx, filters);
167-
final RefactoringElementListener classListener = RefactoringListeners.getClassOrPackageListener(element, accessor);
168+
RefactoringListeners.Accessor<PsiClass> accessor = new MyClassAccessor(project, patterns, idx, filters);
169+
RefactoringElementListener classListener = RefactoringListeners.getClassOrPackageListener(element, accessor);
168170
if (classListener != null) {
169171
listener = appendListener(listener, classListener);
170172
}
171173
}
172174
}
173-
else if (element instanceof PsiJavaPackage) {
174-
final String qualifiedName = ((PsiJavaPackage) element).getQualifiedName();
175+
else if (element instanceof PsiJavaPackage javaPackage) {
176+
String qualifiedName = javaPackage.getQualifiedName();
175177
for (int i = 0, filtersLength = filters.length; i < filtersLength; i++) {
176178
if (filters[i].startsWith(qualifiedName + ".")) {
177-
final RefactoringElementListener packageListener;
179+
RefactoringElementListener packageListener;
178180
if (filters[i].endsWith("*")) {
179181
packageListener = RefactoringListeners.getListener(
180182
(PsiJavaPackage) element,
@@ -200,9 +202,9 @@ else if (element instanceof PsiJavaPackage) {
200202

201203
@Nullable
202204
private static String[] getFilters(JavaCoverageEnabledConfiguration coverageEnabledConfiguration) {
203-
final ClassFilter[] patterns = coverageEnabledConfiguration.getCoveragePatterns();
205+
ClassFilter[] patterns = coverageEnabledConfiguration.getCoveragePatterns();
204206
if (patterns != null) {
205-
final List<String> filters = new ArrayList<String>();
207+
List<String> filters = new ArrayList<>();
206208
for (ClassFilter classFilter : patterns) {
207209
filters.add(classFilter.getPattern());
208210
}
@@ -213,13 +215,13 @@ private static String[] getFilters(JavaCoverageEnabledConfiguration coverageEnab
213215

214216
private static RefactoringElementListener appendListener(
215217
RefactoringElementListener listener,
216-
final RefactoringElementListener classOrPackageListener
218+
RefactoringElementListener classOrPackageListener
217219
) {
218220
if (listener == null) {
219221
listener = new RefactoringElementListenerComposite();
220222
}
221223
else if (!(listener instanceof RefactoringElementListenerComposite)) {
222-
final RefactoringElementListenerComposite composite = new RefactoringElementListenerComposite();
224+
RefactoringElementListenerComposite composite = new RefactoringElementListenerComposite();
223225
composite.addListener(listener);
224226
listener = composite;
225227
}
@@ -233,14 +235,15 @@ public boolean isListenerDisabled(RunConfigurationBase configuration, Object lis
233235
if (!(runnerSettings instanceof CoverageRunnerData)) {
234236
return true;
235237
}
236-
final CoverageEnabledConfiguration coverageEnabledConfiguration = CoverageEnabledConfiguration.getOrCreate(configuration);
237-
return !(coverageEnabledConfiguration.getCoverageRunner() instanceof IDEACoverageRunner) ||
238-
!(coverageEnabledConfiguration.isTrackPerTestCoverage() && !coverageEnabledConfiguration.isSampling());
238+
CoverageEnabledConfiguration coverageEnabledConfiguration = CoverageEnabledConfiguration.getOrCreate(configuration);
239+
return !(coverageEnabledConfiguration.getCoverageRunner() instanceof IDEACoverageRunner)
240+
|| !(coverageEnabledConfiguration.isTrackPerTestCoverage() && !coverageEnabledConfiguration.isSampling());
239241
}
240242
return false;
241243
}
242244

243-
protected boolean isApplicableFor(@Nonnull final RunConfigurationBase configuration) {
245+
@Override
246+
protected boolean isApplicableFor(@Nonnull RunConfigurationBase configuration) {
244247
return CoverageEnabledConfiguration.isApplicableTo(configuration);
245248
}
246249

@@ -251,15 +254,18 @@ private MyPackageAccessor(Project project, ClassFilter[] patterns, int idx, Stri
251254
super(project, patterns, idx, filters);
252255
}
253256

257+
@Override
254258
public void setName(String qualifiedName) {
255259
super.setName(qualifiedName + ".*");
256260
}
257261

262+
@Override
258263
public PsiJavaPackage getPsiElement() {
259-
final String name = getName();
264+
String name = getName();
260265
return JavaPsiFacade.getInstance(getProject()).findPackage(name.substring(0, name.length() - ".*".length()));
261266
}
262267

268+
@Override
263269
public void setPsiElement(PsiJavaPackage psiElement) {
264270
setName(psiElement.getQualifiedName());
265271
}
@@ -271,10 +277,12 @@ private MyClassAccessor(Project project, ClassFilter[] patterns, int idx, String
271277
super(project, patterns, idx, filters);
272278
}
273279

280+
@Override
274281
public PsiClass getPsiElement() {
275282
return JavaPsiFacade.getInstance(getProject()).findClass(getName(), GlobalSearchScope.allScope(getProject()));
276283
}
277284

285+
@Override
278286
public void setPsiElement(PsiClass psiElement) {
279287
setName(psiElement.getQualifiedName());
280288
}

java-coverage-impl/src/main/java/com/intellij/java/coverage/CoverageProjectViewClassNodeDecorator.java

Lines changed: 28 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package com.intellij.java.coverage;
22

33
import com.intellij.java.language.psi.PsiClass;
4+
import consulo.annotation.access.RequiredReadAction;
45
import consulo.annotation.component.ExtensionImpl;
5-
import consulo.execution.coverage.CoverageAnnotator;
66
import consulo.execution.coverage.CoverageDataManager;
77
import consulo.execution.coverage.CoverageSuitesBundle;
88
import consulo.execution.coverage.view.AbstractCoverageProjectViewNodeDecorator;
99
import consulo.language.psi.PsiElement;
1010
import consulo.language.psi.PsiUtilCore;
1111
import consulo.language.psi.SmartPsiElementPointer;
12-
import consulo.language.psi.scope.GlobalSearchScope;
1312
import consulo.project.Project;
1413
import consulo.project.ui.view.tree.PackageElement;
1514
import consulo.project.ui.view.tree.ProjectViewNode;
@@ -24,70 +23,69 @@
2423
@ExtensionImpl
2524
public class CoverageProjectViewClassNodeDecorator extends AbstractCoverageProjectViewNodeDecorator {
2625
@Inject
27-
public CoverageProjectViewClassNodeDecorator(final CoverageDataManager coverageDataManager) {
26+
public CoverageProjectViewClassNodeDecorator(CoverageDataManager coverageDataManager) {
2827
super(coverageDataManager);
2928
}
3029

3130
// @Override
3231
// public void decorate(PackageDependenciesNode node, ColoredTreeCellRenderer cellRenderer) {
33-
// final PsiElement element = node.getPsiElement();
32+
// PsiElement element = node.getPsiElement();
3433
// if (element == null || !element.isValid()) {
3534
// return;
3635
// }
3736
//
38-
// final CoverageDataManager dataManager = getCoverageDataManager();
39-
// final CoverageSuitesBundle currentSuite = dataManager.getCurrentSuitesBundle();
40-
// final Project project = element.getProject();
37+
// CoverageDataManager dataManager = getCoverageDataManager();
38+
// CoverageSuitesBundle currentSuite = dataManager.getCurrentSuitesBundle();
39+
// Project project = element.getProject();
4140
//
42-
// final JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(currentSuite, project);
41+
// JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(currentSuite, project);
4342
// // This decorator is applicable only to JavaCoverageAnnotator
4443
// if (javaCovAnnotator == null) {
4544
// return;
4645
// }
4746
//
48-
// if (element instanceof PsiClass) {
49-
// final String qName = ((PsiClass) element).getQualifiedName();
47+
// if (element instanceof PsiClass psiClass) {
48+
// String qName = psiClass.getQualifiedName();
5049
// if (qName != null) {
5150
// appendCoverageInfo(cellRenderer, javaCovAnnotator.getClassCoverageInformationString(qName, dataManager));
5251
// }
5352
// }
5453
// }
5554

5655
@Override
56+
@RequiredReadAction
5757
public void decorate(ProjectViewNode node, PresentationData data) {
58-
final CoverageDataManager coverageDataManager = getCoverageDataManager();
59-
final CoverageSuitesBundle currentSuite = coverageDataManager.getCurrentSuitesBundle();
58+
CoverageDataManager coverageDataManager = getCoverageDataManager();
59+
CoverageSuitesBundle currentSuite = coverageDataManager.getCurrentSuitesBundle();
6060

61-
final Project project = node.getProject();
62-
final JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(currentSuite, project);
61+
Project project = node.getProject();
62+
JavaCoverageAnnotator javaCovAnnotator = getCovAnnotator(currentSuite, project);
6363
// This decorator is applicable only to JavaCoverageAnnotator
6464
if (javaCovAnnotator == null) {
6565
return;
6666
}
6767

68-
final Object value = node.getValue();
68+
Object value = node.getValue();
6969
PsiElement element = null;
70-
if (value instanceof PsiElement) {
71-
element = (PsiElement) value;
70+
if (value instanceof PsiElement psiElement) {
71+
element = psiElement;
7272
}
73-
else if (value instanceof SmartPsiElementPointer) {
74-
element = ((SmartPsiElementPointer) value).getElement();
73+
else if (value instanceof SmartPsiElementPointer smartPsiElementPointer) {
74+
element = smartPsiElementPointer.getElement();
7575
}
76-
else if (value instanceof PackageElement) {
77-
PackageElement packageElement = (PackageElement) value;
78-
final String coverageString = javaCovAnnotator.getPackageCoverageInformationString(
76+
else if (value instanceof PackageElement packageElement) {
77+
String coverageString = javaCovAnnotator.getPackageCoverageInformationString(
7978
packageElement.getPackage(),
8079
packageElement.getModule(),
8180
coverageDataManager
8281
);
8382
data.setLocationString(coverageString);
8483
}
8584

86-
if (element instanceof PsiClass) {
87-
final GlobalSearchScope searchScope = currentSuite.getSearchScope(project);
88-
final VirtualFile vFile = PsiUtilCore.getVirtualFile(element);
89-
if (vFile != null && searchScope.contains(vFile)) {
90-
final String qName = ((PsiClass) element).getQualifiedName();
85+
if (element instanceof PsiClass psiClass) {
86+
VirtualFile vFile = PsiUtilCore.getVirtualFile(element);
87+
if (vFile != null && currentSuite.getSearchScope(project).contains(vFile)) {
88+
String qName = psiClass.getQualifiedName();
9189
if (qName != null) {
9290
data.setLocationString(javaCovAnnotator.getClassCoverageInformationString(qName, coverageDataManager));
9391
}
@@ -96,12 +94,9 @@ else if (value instanceof PackageElement) {
9694
}
9795

9896
@Nullable
99-
private static JavaCoverageAnnotator getCovAnnotator(final CoverageSuitesBundle currentSuite, Project project) {
100-
if (currentSuite != null) {
101-
final CoverageAnnotator coverageAnnotator = currentSuite.getAnnotator(project);
102-
if (coverageAnnotator instanceof JavaCoverageAnnotator) {
103-
return (JavaCoverageAnnotator) coverageAnnotator;
104-
}
97+
private static JavaCoverageAnnotator getCovAnnotator(CoverageSuitesBundle currentSuite, Project project) {
98+
if (currentSuite != null && currentSuite.getAnnotator(project) instanceof JavaCoverageAnnotator javaCoverageAnnotator) {
99+
return javaCoverageAnnotator;
105100
}
106101
return null;
107102
}

java-coverage-impl/src/main/java/com/intellij/java/coverage/DefaultJavaCoverageRunner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ public boolean canRun(@Nonnull String executorId, @Nonnull RunProfile profile) {
4141
return executorId.equals(CoverageExecutor.EXECUTOR_ID)
4242
// && profile instanceof ModuleBasedConfiguration
4343
&& !(profile instanceof RunConfigurationWithSuppressedDefaultRunAction)
44-
&& profile instanceof RunConfigurationBase
44+
&& profile instanceof RunConfigurationBase runConfigurationBase
4545
&& myApplication.getExtensionPoint(CoverageEngine.class)
46-
.findExtensionOrFail(JavaCoverageEngine.class).isApplicableTo((RunConfigurationBase) profile);
46+
.findExtensionOrFail(JavaCoverageEngine.class).isApplicableTo(runConfigurationBase);
4747
}
4848
catch (Exception e) {
4949
return false;

0 commit comments

Comments
 (0)