From f1086f8d2ba7724af29eccc672b415efea7f0748 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Tue, 6 Dec 2011 13:16:23 +0300 Subject: [PATCH] IDEA-78309 Gradle: Correct processing of library doc roots on importing --- .../gradle/importing/GradleModulesImporter.java | 13 +++++++++++-- .../plugins/gradle/model/LibraryPathType.java | 15 +-------------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java index 4106dd3062f6..a6319895a139 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/importing/GradleModulesImporter.java @@ -45,6 +45,15 @@ import java.util.concurrent.TimeUnit; */ public class GradleModulesImporter { + private static final Map LIBRARY_ROOT_MAPPINGS + = new EnumMap(LibraryPathType.class); + static { + LIBRARY_ROOT_MAPPINGS.put(LibraryPathType.BINARY, OrderRootType.CLASSES); + LIBRARY_ROOT_MAPPINGS.put(LibraryPathType.SOURCE, OrderRootType.SOURCES); + LIBRARY_ROOT_MAPPINGS.put(LibraryPathType.DOC, JavadocOrderRootType.getInstance()); + assert LibraryPathType.values().length == LIBRARY_ROOT_MAPPINGS.size(); + } + /** * We can't modify project modules (add/remove) until it's initialised, so, we delay that activity. Current constant * holds number of milliseconds to wait between 'after project initialisation' processing attempts. @@ -463,7 +472,7 @@ public class GradleModulesImporter { continue; } if (virtualFile.isDirectory()) { - model.addRoot(virtualFile, pathType.getRootType()); + model.addRoot(virtualFile, LIBRARY_ROOT_MAPPINGS.get(pathType)); } else { VirtualFile jarRoot = JarFileSystem.getInstance().getJarRootForLocalFile(virtualFile); @@ -473,7 +482,7 @@ public class GradleModulesImporter { )); continue; } - model.addRoot(jarRoot, pathType.getRootType()); + model.addRoot(jarRoot, LIBRARY_ROOT_MAPPINGS.get(pathType)); } } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/model/LibraryPathType.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/model/LibraryPathType.java index 74d4d6fb7aef..c46c6c41440e 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/model/LibraryPathType.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/model/LibraryPathType.java @@ -1,7 +1,6 @@ package org.jetbrains.plugins.gradle.model; import com.intellij.openapi.roots.OrderRootType; -import org.jetbrains.annotations.NotNull; /** * Note that current enum duplicates {@link OrderRootType}. We can't use the later directly because it's not properly setup @@ -11,17 +10,5 @@ import org.jetbrains.annotations.NotNull; * @since 8/10/11 6:37 PM */ public enum LibraryPathType { - - BINARY(OrderRootType.CLASSES), SOURCE(OrderRootType.SOURCES), DOC(OrderRootType.DOCUMENTATION); - - private final transient OrderRootType myRootType; - - LibraryPathType(@NotNull OrderRootType rootType) { - myRootType = rootType; - } - - @NotNull - public OrderRootType getRootType() { - return myRootType; - } + BINARY, SOURCE, DOC }