diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.kt index c41adb2cdfb..db1cd68e681 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.kt @@ -14,68 +14,63 @@ * limitations under the License. */ -package org.jetbrains.kotlin.idea.framework; +package org.jetbrains.kotlin.idea.framework -import com.intellij.openapi.roots.OrderRootType; -import com.intellij.openapi.roots.impl.libraries.LibraryEx; -import com.intellij.openapi.roots.libraries.Library; -import com.intellij.openapi.util.Key; -import com.intellij.openapi.util.io.JarUtil; -import com.intellij.openapi.vfs.StandardFileSystems; -import com.intellij.openapi.vfs.VfsUtilCore; -import com.intellij.openapi.vfs.VirtualFile; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.utils.LibraryUtils; +import com.intellij.openapi.roots.OrderRootType +import com.intellij.openapi.roots.impl.libraries.LibraryEx +import com.intellij.openapi.roots.libraries.Library +import com.intellij.openapi.util.Key +import com.intellij.openapi.util.io.JarUtil +import com.intellij.openapi.vfs.StandardFileSystems +import com.intellij.openapi.vfs.VfsUtilCore +import com.intellij.openapi.vfs.VirtualFile +import org.jetbrains.kotlin.utils.LibraryUtils -import java.io.File; -import java.util.Arrays; -import java.util.List; -import java.util.jar.Attributes; +import java.io.File +import java.util.Arrays +import java.util.jar.Attributes -public class JsLibraryStdDetectionUtil { - private static final Key IS_JS_LIBRARY_STD_LIB = Key.create("IS_JS_LIBRARY_STD_LIB"); +object JsLibraryStdDetectionUtil { + private val IS_JS_LIBRARY_STD_LIB = Key.create("IS_JS_LIBRARY_STD_LIB") - public static boolean hasJsStdlibJar(@NotNull Library library) { - if (library instanceof LibraryEx && ((LibraryEx) library).isDisposed()) return false; + fun hasJsStdlibJar(library: Library): Boolean { + if (library is LibraryEx && library.isDisposed) return false - if (!KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(library)) return false; + if (!KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(library)) return false - List classes = Arrays.asList(library.getFiles(OrderRootType.CLASSES)); - return getJsLibraryStdVersion(classes) != null; + val classes = Arrays.asList(*library.getFiles(OrderRootType.CLASSES)) + return getJsLibraryStdVersion(classes) != null } - public static String getJsLibraryStdVersion(@NotNull List classesRoots) { + fun getJsLibraryStdVersion(classesRoots: List): String? { if (JavaRuntimeDetectionUtil.getJavaRuntimeVersion(classesRoots) != null) { // Prevent clashing with java runtime, in case when library collects all roots. - return null; + return null } - VirtualFile jar = getJsStdLibJar(classesRoots); - if (jar == null) return null; + val jar = getJsStdLibJar(classesRoots) ?: return null - return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(jar), Attributes.Name.IMPLEMENTATION_VERSION); + return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(jar), Attributes.Name.IMPLEMENTATION_VERSION) } - @Nullable - private static VirtualFile getJsStdLibJar(@NotNull List classesRoots) { - for (VirtualFile root : classesRoots) { - if (root.getFileSystem().getProtocol() != StandardFileSystems.JAR_PROTOCOL) continue; + private fun getJsStdLibJar(classesRoots: List): VirtualFile? { + for (root in classesRoots) { + if (root.fileSystem.protocol !== StandardFileSystems.JAR_PROTOCOL) continue - VirtualFile jar = VfsUtilCore.getVirtualFileForJar(root); + val jar = VfsUtilCore.getVirtualFileForJar(root) if (jar != null) { - Boolean isJSStdLib = jar.getUserData(IS_JS_LIBRARY_STD_LIB); + var isJSStdLib = jar.getUserData(IS_JS_LIBRARY_STD_LIB) if (isJSStdLib == null) { - isJSStdLib = LibraryUtils.isKotlinJavascriptStdLibrary(new File(jar.getPath())); - jar.putUserData(IS_JS_LIBRARY_STD_LIB, isJSStdLib); + isJSStdLib = LibraryUtils.isKotlinJavascriptStdLibrary(File(jar.path)) + jar.putUserData(IS_JS_LIBRARY_STD_LIB, isJSStdLib) } if (isJSStdLib) { - return jar; + return jar } } } - return null; + return null } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ProjectStructureUtil.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ProjectStructureUtil.java index 6003110ebdb..cd75d931d44 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ProjectStructureUtil.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ProjectStructureUtil.java @@ -90,7 +90,7 @@ public class ProjectStructureUtil { ModuleRootManager.getInstance(module).orderEntries().librariesOnly().forEachLibrary(new Processor() { @Override public boolean process(Library library) { - if (JsLibraryStdDetectionUtil.hasJsStdlibJar(library)) { + if (JsLibraryStdDetectionUtil.INSTANCE.hasJsStdlibJar(library)) { jsLibrary.set(library); return false; } diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java index 69bee6f12d1..a5374d5c096 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java @@ -44,7 +44,7 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide @Nullable @Override public LibraryVersionProperties detect(@NotNull List classesRoots) { - String version = JsLibraryStdDetectionUtil.getJsLibraryStdVersion(classesRoots); + String version = JsLibraryStdDetectionUtil.INSTANCE.getJsLibraryStdVersion(classesRoots); return version == null ? null : new LibraryVersionProperties(version); } }