J2K: LibraryPresentationProviderUtil convert
This commit is contained in:
@@ -71,13 +71,13 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getJsStdLibJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getJsStdLibSrcJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,25 +61,25 @@ public class JavaRuntimePresentationProvider extends LibraryPresentationProvider
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getRuntimeJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
JavaRuntimeDetectionUtil.getRuntimeJar(Arrays.asList(library.getFiles(OrderRootType.CLASSES)));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getReflectJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_JAVA_REFLECT_JAR);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getRuntimeSrcJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
getRuntimeSrcJar(Arrays.asList(library.getFiles(OrderRootType.SOURCES)));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VirtualFile getTestJar(@NotNull Library library) {
|
||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
||||
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,38 +14,30 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.framework;
|
||||
package org.jetbrains.kotlin.idea.framework
|
||||
|
||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryPresentationProvider;
|
||||
import com.intellij.openapi.roots.libraries.LibraryProperties;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||
import com.intellij.openapi.roots.OrderRootType
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.roots.libraries.LibraryPresentationProvider
|
||||
import com.intellij.openapi.roots.libraries.LibraryProperties
|
||||
import java.util.*
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class LibraryPresentationProviderUtil {
|
||||
private LibraryPresentationProviderUtil() {}
|
||||
|
||||
public static <LP extends LibraryProperties> boolean isDetected(@NotNull LibraryPresentationProvider<LP> provider, @NotNull Library library) {
|
||||
return getLibraryProperties(provider, library) != null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static <LP extends LibraryProperties> LP getLibraryProperties(@NotNull LibraryPresentationProvider<LP> provider, @NotNull Library library) {
|
||||
if (isExternalLibrary(library)) return null;
|
||||
return provider.detect(Arrays.asList(library.getFiles(OrderRootType.CLASSES)));
|
||||
}
|
||||
|
||||
private static final ProjectSystemId MAVEN_SYSTEM_ID = new ProjectSystemId("MAVEN");
|
||||
private static final ProjectSystemId GRADLE_SYSTEM_ID = new ProjectSystemId("GRADLE");
|
||||
|
||||
public static boolean isExternalLibrary(@NotNull Library library) {
|
||||
return ExternalSystemApiUtil.isExternalSystemLibrary(library, ProjectSystemId.IDE) ||
|
||||
ExternalSystemApiUtil.isExternalSystemLibrary(library, GRADLE_SYSTEM_ID) ||
|
||||
ExternalSystemApiUtil.isExternalSystemLibrary(library, MAVEN_SYSTEM_ID);
|
||||
}
|
||||
fun <LP : LibraryProperties<out Any>> isDetected(provider: LibraryPresentationProvider<LP>, library: Library): Boolean {
|
||||
return getLibraryProperties(provider, library) != null
|
||||
}
|
||||
|
||||
fun <LP : LibraryProperties<out Any>> getLibraryProperties(provider: LibraryPresentationProvider<LP>, library: Library): LP? {
|
||||
if (isExternalLibrary(library)) return null
|
||||
return provider.detect(Arrays.asList(*library.getFiles(OrderRootType.CLASSES)))
|
||||
}
|
||||
|
||||
private val MAVEN_SYSTEM_ID = ProjectSystemId("MAVEN")
|
||||
private val GRADLE_SYSTEM_ID = ProjectSystemId("GRADLE")
|
||||
|
||||
fun isExternalLibrary(library: Library): Boolean {
|
||||
return ExternalSystemApiUtil.isExternalSystemLibrary(library, ProjectSystemId.IDE) ||
|
||||
ExternalSystemApiUtil.isExternalSystemLibrary(library, GRADLE_SYSTEM_ID) ||
|
||||
ExternalSystemApiUtil.isExternalSystemLibrary(library, MAVEN_SYSTEM_ID)
|
||||
}
|
||||
@@ -44,7 +44,7 @@ import org.jetbrains.kotlin.idea.configuration.createConfigureKotlinNotification
|
||||
import org.jetbrains.kotlin.idea.configuration.getConfiguratorByName
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.LibraryPresentationProviderUtil
|
||||
import org.jetbrains.kotlin.idea.framework.isDetected
|
||||
import org.jetbrains.kotlin.serialization.deserialization.BinaryVersion
|
||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
@@ -75,7 +75,7 @@ fun updateLibraries(project: Project, libraries: Collection<Library>) {
|
||||
val collector = createConfigureKotlinNotificationCollector(project)
|
||||
|
||||
for (library in libraries) {
|
||||
if (LibraryPresentationProviderUtil.isDetected(JavaRuntimePresentationProvider.getInstance(), library)) {
|
||||
if (isDetected(JavaRuntimePresentationProvider.getInstance(), library)) {
|
||||
updateJar(project, JavaRuntimePresentationProvider.getRuntimeJar(library), LibraryJarDescriptor.RUNTIME_JAR)
|
||||
updateJar(project, JavaRuntimePresentationProvider.getReflectJar(library), LibraryJarDescriptor.REFLECT_JAR)
|
||||
updateJar(project, JavaRuntimePresentationProvider.getTestJar(library), LibraryJarDescriptor.TEST_JAR)
|
||||
@@ -87,7 +87,7 @@ fun updateLibraries(project: Project, libraries: Collection<Library>) {
|
||||
updateJar(project, JavaRuntimePresentationProvider.getRuntimeSrcJar(library), LibraryJarDescriptor.RUNTIME_SRC_JAR)
|
||||
}
|
||||
}
|
||||
else if (LibraryPresentationProviderUtil.isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||
else if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||
updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR)
|
||||
|
||||
if (kJsConfigurator.changeOldSourcesPathIfNeeded(library, collector)) {
|
||||
|
||||
@@ -30,7 +30,8 @@ import com.intellij.util.text.VersionComparatorUtil
|
||||
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
||||
import org.jetbrains.kotlin.idea.framework.LibraryPresentationProviderUtil
|
||||
import org.jetbrains.kotlin.idea.framework.getLibraryProperties
|
||||
import org.jetbrains.kotlin.idea.framework.isDetected
|
||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||
import java.io.IOException
|
||||
import javax.swing.event.HyperlinkEvent
|
||||
@@ -50,8 +51,8 @@ fun findOutdatedKotlinLibraries(project: Project): List<VersionedLibrary> {
|
||||
|
||||
for ((library, modules) in findAllUsedLibraries(project).entrySet()) {
|
||||
val libraryVersionProperties =
|
||||
LibraryPresentationProviderUtil.getLibraryProperties(JavaRuntimePresentationProvider.getInstance(), library) ?:
|
||||
LibraryPresentationProviderUtil.getLibraryProperties(JSLibraryStdPresentationProvider.getInstance(), library) ?:
|
||||
getLibraryProperties(JavaRuntimePresentationProvider.getInstance(), library) ?:
|
||||
getLibraryProperties(JSLibraryStdPresentationProvider.getInstance(), library) ?:
|
||||
continue
|
||||
|
||||
val libraryVersion = libraryVersionProperties.versionString
|
||||
@@ -136,7 +137,7 @@ private fun suggestDeleteKotlinJsIfNeeded(project: Project, outdatedLibraries: C
|
||||
|
||||
var addNotification = false
|
||||
for (library in outdatedLibraries) {
|
||||
if (LibraryPresentationProviderUtil.isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||
if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||
val jsStdlibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library)
|
||||
assert(jsStdlibJar != null) { "jslibFile should not be null" }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user