From 0590408236f755238defd6a3854062b174c0e025 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 20 Mar 2013 15:29:42 +0400 Subject: [PATCH] Move api extensions for LibraryPresentationProvider to utility methods --- .../JSLibraryStdPresentationProvider.java | 2 +- .../JavaRuntimePresentationProvider.java | 2 +- .../JsHeaderLibraryPresentationProvider.java | 2 +- .../framework/KotlinFrameworkDetector.java | 2 +- ...a => LibraryPresentationProviderUtil.java} | 26 +++++++++---------- .../OutdatedKotlinRuntimeNotification.java | 7 +++-- 6 files changed, 21 insertions(+), 20 deletions(-) rename idea/src/org/jetbrains/jet/plugin/framework/{CachingLibraryPresentationProvider.java => LibraryPresentationProviderUtil.java} (58%) diff --git a/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdPresentationProvider.java b/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdPresentationProvider.java index 90d2a0a9a4649..f1f0f9457c0f3 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdPresentationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdPresentationProvider.java @@ -31,7 +31,7 @@ import java.io.IOException; import java.util.List; -public class JSLibraryStdPresentationProvider extends CachingLibraryPresentationProvider { +public class JSLibraryStdPresentationProvider extends LibraryPresentationProvider { public static JSLibraryStdPresentationProvider getInstance() { return LibraryPresentationProvider.EP_NAME.findExtension(JSLibraryStdPresentationProvider.class); } diff --git a/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimePresentationProvider.java b/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimePresentationProvider.java index 5ea9bbcebeb67..76d543c10a813 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimePresentationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimePresentationProvider.java @@ -34,7 +34,7 @@ import java.util.Arrays; import java.util.List; -public class JavaRuntimePresentationProvider extends CachingLibraryPresentationProvider { +public class JavaRuntimePresentationProvider extends LibraryPresentationProvider { public static JavaRuntimePresentationProvider getInstance() { return LibraryPresentationProvider.EP_NAME.findExtension(JavaRuntimePresentationProvider.class); } diff --git a/idea/src/org/jetbrains/jet/plugin/framework/JsHeaderLibraryPresentationProvider.java b/idea/src/org/jetbrains/jet/plugin/framework/JsHeaderLibraryPresentationProvider.java index 49f7e794ec882..0c60ba958d918 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/JsHeaderLibraryPresentationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/JsHeaderLibraryPresentationProvider.java @@ -30,7 +30,7 @@ import javax.swing.*; import java.util.List; -public class JsHeaderLibraryPresentationProvider extends CachingLibraryPresentationProvider { +public class JsHeaderLibraryPresentationProvider extends LibraryPresentationProvider { public static final LibraryKind KOTLIN_JAVASCRIPT_HEADER_KIND = LibraryKind.create("kotlin-js-header"); public static JsHeaderLibraryPresentationProvider getInstance() { diff --git a/idea/src/org/jetbrains/jet/plugin/framework/KotlinFrameworkDetector.java b/idea/src/org/jetbrains/jet/plugin/framework/KotlinFrameworkDetector.java index edbab372b50e7..decf72ba231b5 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/KotlinFrameworkDetector.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/KotlinFrameworkDetector.java @@ -115,7 +115,7 @@ public void run() { ModuleRootManager.getInstance(module).orderEntries().librariesOnly().forEachLibrary(new Processor() { @Override public boolean process(Library library) { - if (JsHeaderLibraryPresentationProvider.getInstance().isDetected(library)) { + if (LibraryPresentationProviderUtil.isDetected(JsHeaderLibraryPresentationProvider.getInstance(), library)) { for (VirtualFile file : library.getRootProvider().getFiles(OrderRootType.SOURCES)) { pathsToJSLib.add(PathUtil.getLocalPath(file)); } diff --git a/idea/src/org/jetbrains/jet/plugin/framework/CachingLibraryPresentationProvider.java b/idea/src/org/jetbrains/jet/plugin/framework/LibraryPresentationProviderUtil.java similarity index 58% rename from idea/src/org/jetbrains/jet/plugin/framework/CachingLibraryPresentationProvider.java rename to idea/src/org/jetbrains/jet/plugin/framework/LibraryPresentationProviderUtil.java index 0a6024c1646c6..5a6cd31d66cca 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/CachingLibraryPresentationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/LibraryPresentationProviderUtil.java @@ -26,36 +26,34 @@ import java.util.Arrays; import java.util.List; -public abstract class CachingLibraryPresentationProvider extends LibraryPresentationProvider { - protected CachingLibraryPresentationProvider(@NotNull LibraryKind kind) { - super(kind); - } +public class LibraryPresentationProviderUtil { + private LibraryPresentationProviderUtil() {} - public boolean isDetected(@NotNull Library library) { - return isDetected(Arrays.asList(library.getFiles(OrderRootType.CLASSES))); + public static boolean isDetected(@NotNull LibraryPresentationProvider provider, @NotNull Library library) { + return getLibraryProperties(provider, library) != null; } - public boolean isDetected(@NotNull List classesRoots) { - return cachedDetect(classesRoots, getKind()) != null; + public static boolean isDetected(@NotNull LibraryPresentationProvider provider, @NotNull List classesRoots) { + return cachedDetect(provider, classesRoots) != null; } @Nullable - public T getLibraryProperties(@NotNull Library library) { - return cachedDetect(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), getKind()); + public static LP getLibraryProperties(@NotNull LibraryPresentationProvider provider, @NotNull Library library) { + return cachedDetect(provider, Arrays.asList(library.getFiles(OrderRootType.CLASSES))); } @Nullable - private T cachedDetect(@NotNull List classesRoots, @NotNull final LibraryKind libraryKind) { - final Ref propertiesRef = new Ref(); + private static LP cachedDetect(@NotNull final LibraryPresentationProvider provider, @NotNull List classesRoots) { + final Ref propertiesRef = new Ref(); LibraryDetectionManager.getInstance().processProperties( classesRoots, new LibraryDetectionManager.LibraryPropertiesProcessor() { @Override public

boolean processProperties(@NotNull LibraryKind processedKind, @NotNull P properties) { - if (libraryKind.equals(processedKind)) { + if (provider.getKind().equals(processedKind)) { //noinspection unchecked - propertiesRef.set((T)properties); + propertiesRef.set((LP)properties); return false; } diff --git a/idea/src/org/jetbrains/jet/plugin/versions/OutdatedKotlinRuntimeNotification.java b/idea/src/org/jetbrains/jet/plugin/versions/OutdatedKotlinRuntimeNotification.java index bbab6a855fee1..069ebdfdfe22f 100644 --- a/idea/src/org/jetbrains/jet/plugin/versions/OutdatedKotlinRuntimeNotification.java +++ b/idea/src/org/jetbrains/jet/plugin/versions/OutdatedKotlinRuntimeNotification.java @@ -44,6 +44,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.plugin.JetPluginUtil; import org.jetbrains.jet.plugin.framework.JavaRuntimePresentationProvider; +import org.jetbrains.jet.plugin.framework.LibraryPresentationProviderUtil; import org.jetbrains.jet.utils.PathUtil; import javax.swing.event.HyperlinkEvent; @@ -168,7 +169,8 @@ private static void updateKotlinLibraries(Collection libraries, @NotNul for (Library library : libraries) { VirtualFile libraryJar = JavaRuntimePresentationProvider.getRuntimeJar(library); - assert JavaRuntimePresentationProvider.getInstance().isDetected(library) && libraryJar != null : "Only java runtime libraries are expected"; + assert LibraryPresentationProviderUtil.isDetected(JavaRuntimePresentationProvider.getInstance(), library) && + libraryJar != null : "Only java runtime libraries are expected"; KotlinRuntimeLibraryUtil.replaceFile(runtimePath, libraryJar); } @@ -208,7 +210,8 @@ private static Collection findKotlinLibraries(Project project) continue; } - LibraryVersionProperties javaRuntimeProperties = JavaRuntimePresentationProvider.getInstance().getLibraryProperties(library); + LibraryVersionProperties javaRuntimeProperties = LibraryPresentationProviderUtil.getLibraryProperties( + JavaRuntimePresentationProvider.getInstance(), library); if (javaRuntimeProperties != null) { libraries.add(new VersionedLibrary(library, javaRuntimeProperties.getVersionString())); }