mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
remove project component and replace it with static method call IDEA-CR-41392
This commit is contained in:
@@ -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>
|
||||
|
||||
+6
-9
@@ -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) }
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-12
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user