remove project component and replace it with static method call IDEA-CR-41392

This commit is contained in:
Nikita Skvortsov
2019-03-19 18:52:33 +03:00
parent 335d99eba3
commit aa63414c4a
4 changed files with 13 additions and 32 deletions
@@ -42,9 +42,6 @@
<component>
<implementation-class>com.intellij.lang.java.JavaModuleRenameListener</implementation-class>
</component>
<component>
<implementation-class>com.intellij.codeInsight.externalAnnotation.location.AnnotationsLocationSearcher</implementation-class>
</component>
</project-components>
<extensionPoints>
@@ -1,21 +1,18 @@
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.codeInsight.externalAnnotation.location
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.libraries.Library
/**
* Component that looks for an external annotations locations using plugin providers.
*/
class AnnotationsLocationSearcher {
fun findAnnotationsLocation(library: Library,
artifactId: String?,
groupId: String?,
version: String?): Collection<AnnotationsLocation> {
return AnnotationsLocationProvider.EP_NAME.extensions.flatMap { it.getLocations(library, artifactId, groupId, version) }
}
companion object {
fun getInstance(project: Project): AnnotationsLocationSearcher = project.getComponent(AnnotationsLocationSearcher::class.java)
fun findAnnotationsLocation(library: Library,
artifactId: String?,
groupId: String?,
version: String?): Collection<AnnotationsLocation> {
return AnnotationsLocationProvider.EP_NAME.extensions.flatMap { it.getLocations(library, artifactId, groupId, version) }
}
}
}
@@ -7,18 +7,9 @@ import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar
import com.intellij.testFramework.LightPlatformTestCase
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.util.containers.MultiMap
import org.junit.Before
import org.junit.Test
class AnnotationsLocationSearcherTest : LightPlatformTestCase() {
private lateinit var searcher: AnnotationsLocationSearcher
@Before
override fun setUp() {
super.setUp()
searcher = AnnotationsLocationSearcher.getInstance(getProject())
}
private fun configureExtensionPoint(secondProvider: AnnotationsLocationProvider? = null) {
val testAnnotationProvider = TestAnnotationProvider()
@@ -34,7 +25,7 @@ class AnnotationsLocationSearcherTest : LightPlatformTestCase() {
configureExtensionPoint()
val library = createLibrary("unknown-library")
assertEmpty(searcher.findAnnotationsLocation(library, null, null, null))
assertEmpty(AnnotationsLocationSearcher.findAnnotationsLocation(library, null, null, null))
}
@Test
@@ -42,7 +33,7 @@ class AnnotationsLocationSearcherTest : LightPlatformTestCase() {
configureExtensionPoint()
val library = createLibrary("known-library-name")
assertSize(1, searcher.findAnnotationsLocation(library, null, null, null))
assertSize(1, AnnotationsLocationSearcher.findAnnotationsLocation(library, null, null, null))
}
@Test
@@ -57,7 +48,7 @@ class AnnotationsLocationSearcherTest : LightPlatformTestCase() {
configureExtensionPoint(secondProvider)
val library = createLibrary("known-library-name")
assertSize(2, searcher.findAnnotationsLocation(library, null, null, null))
assertSize(2, AnnotationsLocationSearcher.findAnnotationsLocation(library, null, null, null))
}
private fun createLibrary(libraryName: String): Library {
@@ -35,11 +35,10 @@ class ExternalAnnotationsDataService: AbstractProjectDataService<LibraryData, Li
modelsProvider: IdeModelsProvider) {
val resolver = ExternalAnnotationsArtifactsResolver.EP_NAME.extensionList.firstOrNull() ?: return
val searcher = AnnotationsLocationSearcher.getInstance(project)
val providedAnnotations = imported.mapNotNull {
val libData = it.data
val lib = modelsProvider.getLibraryByName(libData.internalName) ?: return@mapNotNull null
lookForLocations(searcher, lib, libData)
lookForLocations(lib, libData)
}.toMap()
resolveProvidedAnnotations(providedAnnotations, resolver, project)
@@ -98,7 +97,6 @@ class ExternalAnnotationsModuleLibrariesService: AbstractProjectDataService<Modu
project: Project,
modelsProvider: IdeModelsProvider) {
val resolver = ExternalAnnotationsArtifactsResolver.EP_NAME.extensionList.firstOrNull() ?: return
val searcher = AnnotationsLocationSearcher.getInstance(project)
val providedAnnotations = imported
.flatMap { ExternalSystemApiUtil.findAll(it, GradleSourceSetData.KEY) + it }
@@ -108,7 +106,7 @@ class ExternalAnnotationsModuleLibrariesService: AbstractProjectDataService<Modu
.mapNotNull {
val libData = it.data.target
val lib = (modelsProvider.findIdeModuleOrderEntry(it.data) as? LibraryOrderEntry)?.library ?: return@mapNotNull null
lookForLocations(searcher, lib, libData)
lookForLocations(lib, libData)
}
}.toMap()
@@ -117,10 +115,8 @@ class ExternalAnnotationsModuleLibrariesService: AbstractProjectDataService<Modu
}
fun lookForLocations(searcher: AnnotationsLocationSearcher,
lib: Library,
libData: LibraryData): Pair<Library, Collection<AnnotationsLocation>>? {
val locations = searcher.findAnnotationsLocation(lib, libData.artifactId, libData.groupId, libData.version)
fun lookForLocations(lib: Library, libData: LibraryData): Pair<Library, Collection<AnnotationsLocation>>? {
val locations = AnnotationsLocationSearcher.findAnnotationsLocation(lib, libData.artifactId, libData.groupId, libData.version)
return if (locations.isEmpty()) {
null
}