From 0594abbad61139f03cca5fff5e4d43a5014da991 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 1 Mar 2016 13:52:32 +0300 Subject: [PATCH] J2K: LibraryPresentationProviderUtil convert --- .../JSLibraryStdPresentationProvider.java | 4 +- .../JavaRuntimePresentationProvider.java | 8 +-- .../LibraryPresentationProviderUtil.kt | 56 ++++++++----------- .../idea/versions/KotlinRuntimeLibraryUtil.kt | 6 +- .../versions/OutdatedKotlinRuntimeChecker.kt | 9 +-- 5 files changed, 38 insertions(+), 45 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java index 98a9422af34..af17401134b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java @@ -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); } } diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java b/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java index 81364ee669c..4cf36677644 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java @@ -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); } } diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt b/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt index bd16d09953d..d82bd2d07e5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt @@ -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 boolean isDetected(@NotNull LibraryPresentationProvider provider, @NotNull Library library) { - return getLibraryProperties(provider, library) != null; - } - - @Nullable - public static LP getLibraryProperties(@NotNull LibraryPresentationProvider 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 > isDetected(provider: LibraryPresentationProvider, library: Library): Boolean { + return getLibraryProperties(provider, library) != null } + +fun > getLibraryProperties(provider: LibraryPresentationProvider, 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) +} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt index 26891b7a22e..243dac5cb3b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt @@ -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) { 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) { 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)) { diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt b/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt index e2c15776ff8..6157b15ef9a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt @@ -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 { 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" }