From 59e2449d4eb2a952d2ffd1b2fd8ba2c2907946bb Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 1 Mar 2016 15:34:20 +0300 Subject: [PATCH] Refactoring: extract methods from JSLibraryStdPresentationProvider --- .../configuration/KotlinJsModuleConfigurator.java | 4 ++-- .../JSLibraryStdPresentationProvider.java | 14 -------------- .../framework/LibraryPresentationProviderUtil.kt | 10 ++++++++++ .../idea/versions/KotlinRuntimeLibraryUtil.kt | 4 ++-- .../idea/versions/OutdatedKotlinRuntimeChecker.kt | 7 ++----- ...supportedAbiVersionNotificationPanelProvider.kt | 4 ++-- 6 files changed, 18 insertions(+), 25 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.java b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.java index 8da37c95a67..bb2fe95d029 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.java +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinJsModuleConfigurator.java @@ -22,7 +22,7 @@ import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.idea.framework.JSLibraryStdDescription; -import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider; +import org.jetbrains.kotlin.idea.framework.LibraryPresentationProviderUtilKt; import org.jetbrains.kotlin.idea.project.ProjectStructureUtil; import org.jetbrains.kotlin.js.JavaScript; import org.jetbrains.kotlin.js.resolve.JsPlatform; @@ -97,7 +97,7 @@ public class KotlinJsModuleConfigurator extends KotlinWithLibraryConfigurator { @Nullable @Override protected String getOldSourceRootUrl(@NotNull Library library) { - VirtualFile jsStdLibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library); + VirtualFile jsStdLibJar = LibraryPresentationProviderUtilKt.getJsStdLibJar(library); return jsStdLibJar != null ? jsStdLibJar.getUrl() : null; } } diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java index af17401134b..9a37cbbad0b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java @@ -25,11 +25,9 @@ import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.idea.KotlinIcons; -import org.jetbrains.kotlin.utils.LibraryUtils; import org.jetbrains.kotlin.utils.PathUtil; import javax.swing.*; -import java.util.Arrays; import java.util.List; public class JSLibraryStdPresentationProvider extends LibraryPresentationProvider { @@ -68,16 +66,4 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide return false; } - - @Nullable - public static VirtualFile getJsStdLibJar(@NotNull Library library) { - 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 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/LibraryPresentationProviderUtil.kt b/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt index 0c67aa8296f..4609683b3da 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.kt @@ -65,6 +65,16 @@ fun getTestJar(library: Library): VirtualFile? { return LibraryUtils.getJarFile(Arrays.asList(*library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR) } +fun getJsStdLibJar(library: Library): VirtualFile? { + if (isExternalLibrary(library)) return null + return LibraryUtils.getJarFile(Arrays.asList(*library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME) +} + +fun getJsStdLibSrcJar(library: Library): VirtualFile? { + if (isExternalLibrary(library)) return null + return LibraryUtils.getJarFile(Arrays.asList(*library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME) +} + private fun getRuntimeSrcJar(classesRoots: List): VirtualFile? { return LibraryUtils.getJarFile(classesRoots, PathUtil.KOTLIN_JAVA_RUNTIME_SRC_JAR); } diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt index c04e2f459bc..a3a1c09799e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt @@ -86,13 +86,13 @@ fun updateLibraries(project: Project, libraries: Collection) { } } else if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) { - updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR) + updateJar(project, getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR) if (kJsConfigurator.changeOldSourcesPathIfNeeded(library, collector)) { kJsConfigurator.copySourcesToPathFromLibrary(library, collector) } else { - updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibSrcJar(library), LibraryJarDescriptor.JS_STDLIB_SRC_JAR) + updateJar(project, getJsStdLibSrcJar(library), LibraryJarDescriptor.JS_STDLIB_SRC_JAR) } } } diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt b/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt index 6157b15ef9a..7a1b8da8c99 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/OutdatedKotlinRuntimeChecker.kt @@ -28,10 +28,7 @@ import com.intellij.openapi.roots.libraries.Library import com.intellij.util.PathUtil.getLocalFile 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.getLibraryProperties -import org.jetbrains.kotlin.idea.framework.isDetected +import org.jetbrains.kotlin.idea.framework.* import org.jetbrains.kotlin.idea.util.application.runWriteAction import java.io.IOException import javax.swing.event.HyperlinkEvent @@ -138,7 +135,7 @@ private fun suggestDeleteKotlinJsIfNeeded(project: Project, outdatedLibraries: C var addNotification = false for (library in outdatedLibraries) { if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) { - val jsStdlibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library) + val jsStdlibJar = getJsStdLibJar(library) assert(jsStdlibJar != null) { "jslibFile should not be null" } if (jsStdlibJar!!.findFileByRelativePath("kotlin.js") == null) { diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt b/idea/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt index a50e7ee1055..6aedab6a52e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt @@ -42,7 +42,7 @@ import com.intellij.ui.EditorNotificationPanel import com.intellij.ui.EditorNotifications import com.intellij.ui.HyperlinkLabel import org.jetbrains.kotlin.idea.KotlinFileType -import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider +import org.jetbrains.kotlin.idea.framework.getJsStdLibJar import org.jetbrains.kotlin.idea.framework.getRuntimeJar import java.text.MessageFormat import javax.swing.Icon @@ -72,7 +72,7 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec val kotlinLibraries = findAllUsedLibraries(project).keySet() val badRuntimeLibraries = kotlinLibraries.filter { library -> val runtimeJar = getLocalJar(getRuntimeJar(library)) - val jsLibJar = getLocalJar(JSLibraryStdPresentationProvider.getJsStdLibJar(library)) + val jsLibJar = getLocalJar(getJsStdLibJar(library)) badRoots.contains(runtimeJar) || badRoots.contains(jsLibJar) }