From 7696779cf5c83c99c00571731f8a0ba4c61844d7 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Mon, 12 Mar 2012 17:53:20 +0400 Subject: [PATCH] refactoring: move methods from AndroidSdkUtils to AndroidUtils --- .../actions/CreateXmlResourceDialog.java | 3 +- .../android/compiler/AndroidAptCompiler.java | 7 +- .../android/compiler/AndroidCompileUtil.java | 3 +- .../compiler/AndroidIncludingCompiler.java | 6 +- .../compiler/AndroidPackagingCompiler.java | 4 +- .../AndroidResourcesPackagingCompiler.java | 3 +- .../compiler/ResourcesValidityState.java | 4 +- .../jetbrains/android/facet/AndroidFacet.java | 2 +- .../LocalResourceManager.java | 3 +- .../android/sdk/AndroidSdkUtils.java | 83 +------------------ .../android/util/AndroidResourceUtil.java | 3 +- .../jetbrains/android/util/AndroidUtils.java | 80 +++++++++++++++++- 12 files changed, 98 insertions(+), 103 deletions(-) diff --git a/plugins/android/src/org/jetbrains/android/actions/CreateXmlResourceDialog.java b/plugins/android/src/org/jetbrains/android/actions/CreateXmlResourceDialog.java index b855315ccac8..2138266bb93c 100644 --- a/plugins/android/src/org/jetbrains/android/actions/CreateXmlResourceDialog.java +++ b/plugins/android/src/org/jetbrains/android/actions/CreateXmlResourceDialog.java @@ -20,7 +20,6 @@ import org.jetbrains.android.dom.resources.ResourceElement; import org.jetbrains.android.dom.resources.Resources; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidRootUtil; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.uipreview.DeviceConfiguratorPanel; import org.jetbrains.android.uipreview.InvalidOptionValueException; import org.jetbrains.android.util.AndroidBundle; @@ -61,7 +60,7 @@ public class CreateXmlResourceDialog extends DialogWrapper { final Set modulesSet = new HashSet(); modulesSet.add(module); - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) { modulesSet.add(depFacet.getModule()); } diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidAptCompiler.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidAptCompiler.java index d9a39a822d7e..dcdc59d8d4dd 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidAptCompiler.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidAptCompiler.java @@ -35,7 +35,6 @@ import org.jetbrains.android.facet.AndroidFacetConfiguration; import org.jetbrains.android.facet.AndroidRootUtil; import org.jetbrains.android.maven.AndroidMavenUtil; import org.jetbrains.android.sdk.AndroidPlatform; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.AndroidBundle; import org.jetbrains.android.util.AndroidCommonUtils; import org.jetbrains.android.util.AndroidUtils; @@ -265,7 +264,7 @@ public class AndroidAptCompiler implements SourceGeneratingCompiler { // todo: support this in android-jps // see IDEA-79737 for details private static boolean hasBadCircularDependencies(@NotNull AndroidFacet facet) { - final List dependencies = AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), true); + final List dependencies = AndroidUtils.getAllAndroidDependencies(facet.getModule(), true); final Manifest manifest = facet.getManifest(); if (manifest == null) { @@ -285,7 +284,7 @@ public class AndroidAptCompiler implements SourceGeneratingCompiler { continue; } } - final List depDependencies = AndroidSdkUtils.getAllAndroidDependencies(depFacet.getModule(), true); + final List depDependencies = AndroidUtils.getAllAndroidDependencies(depFacet.getModule(), true); if (depDependencies.contains(facet) && dependencies.contains(depFacet) && @@ -303,7 +302,7 @@ public class AndroidAptCompiler implements SourceGeneratingCompiler { final List result = new ArrayList(); - for (String libPackage : AndroidSdkUtils.getDepLibsPackages(module)) { + for (String libPackage : AndroidUtils.getDepLibsPackages(module)) { if (packageSet.add(libPackage)) { result.add(libPackage); } diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java index b21f049ff7fe..2bb31bb3377e 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidCompileUtil.java @@ -62,7 +62,6 @@ import org.jetbrains.android.fileTypes.AndroidIdlFileType; import org.jetbrains.android.fileTypes.AndroidRenderscriptFileType; import org.jetbrains.android.resourceManagers.LocalResourceManager; import org.jetbrains.android.sdk.AndroidPlatform; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.*; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -524,7 +523,7 @@ public class AndroidCompileUtil { doCollectResourceDirs(facet, collectResCacheDirs, result, context); - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), true)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(facet.getModule(), true)) { doCollectResourceDirs(depFacet, collectResCacheDirs, result, context); } return ArrayUtil.toStringArray(result); diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidIncludingCompiler.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidIncludingCompiler.java index 3026778ead3b..0ee7babbc9bc 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidIncludingCompiler.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidIncludingCompiler.java @@ -32,8 +32,8 @@ import com.intellij.util.containers.HashMap; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidRootUtil; import org.jetbrains.android.sdk.AndroidPlatform; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.AndroidBundle; +import org.jetbrains.android.util.AndroidUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -58,7 +58,7 @@ public class AndroidIncludingCompiler implements SourceGeneratingCompiler { return null; } - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) { String genSrcRootPath = AndroidRootUtil.getAptGenSourceRootPath(depFacet); VirtualFile genSrcRoot = genSrcRootPath != null ? LocalFileSystem.getInstance().findFileByPath(genSrcRootPath) : null; VirtualFile[] srcRoots = ModuleRootManager.getInstance(depFacet.getModule()).getSourceRoots(); @@ -90,7 +90,7 @@ public class AndroidIncludingCompiler implements SourceGeneratingCompiler { } Map qName2Item = new HashMap(); - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) { final AndroidPlatform platform = depFacet.getConfiguration().getAndroidPlatform(); final int platformToolsRevision = platform != null ? platform.getSdkData().getPlatformToolsRevision() : -1; diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java index ee75f4e8dde6..874a1c583047 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidPackagingCompiler.java @@ -34,9 +34,9 @@ import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidFacetConfiguration; import org.jetbrains.android.facet.AndroidRootUtil; import org.jetbrains.android.sdk.AndroidPlatform; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.AndroidBundle; import org.jetbrains.android.util.AndroidCommonUtils; +import org.jetbrains.android.util.AndroidUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -173,7 +173,7 @@ public class AndroidPackagingCompiler implements PackagingCompiler { if (libsDir != null) { result.add(libsDir); } - for (AndroidFacet depFacet : AndroidSdkUtils.getAndroidDependencies(facet.getModule(), true)) { + for (AndroidFacet depFacet : AndroidUtils.getAndroidDependencies(facet.getModule(), true)) { VirtualFile depLibsDir = AndroidRootUtil.getLibsDir(depFacet); if (depLibsDir != null) { result.add(depLibsDir); diff --git a/plugins/android/src/org/jetbrains/android/compiler/AndroidResourcesPackagingCompiler.java b/plugins/android/src/org/jetbrains/android/compiler/AndroidResourcesPackagingCompiler.java index 8dbb4f81984c..d59b30f96a98 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/AndroidResourcesPackagingCompiler.java +++ b/plugins/android/src/org/jetbrains/android/compiler/AndroidResourcesPackagingCompiler.java @@ -34,7 +34,6 @@ import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidFacetConfiguration; import org.jetbrains.android.facet.AndroidRootUtil; import org.jetbrains.android.sdk.AndroidPlatform; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.AndroidBundle; import org.jetbrains.android.util.AndroidUtils; import org.jetbrains.annotations.NotNull; @@ -103,7 +102,7 @@ public class AndroidResourcesPackagingCompiler implements ClassPostProcessingCom if (assetsDir != null) { result.add(FileUtil.toSystemDependentName(assetsDir.getPath())); } - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), true)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(facet.getModule(), true)) { final VirtualFile depAssetsDir = AndroidRootUtil.getAssetsDir(depFacet); if (depAssetsDir != null) { diff --git a/plugins/android/src/org/jetbrains/android/compiler/ResourcesValidityState.java b/plugins/android/src/org/jetbrains/android/compiler/ResourcesValidityState.java index a5f619162e0a..b838b8ee827d 100644 --- a/plugins/android/src/org/jetbrains/android/compiler/ResourcesValidityState.java +++ b/plugins/android/src/org/jetbrains/android/compiler/ResourcesValidityState.java @@ -22,7 +22,7 @@ import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidRootUtil; import org.jetbrains.android.sdk.AndroidPlatform; -import org.jetbrains.android.sdk.AndroidSdkUtils; +import org.jetbrains.android.util.AndroidUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -66,7 +66,7 @@ public class ResourcesValidityState implements ValidityState { if (assetsDir != null) { collectFiles(assetsDir); } - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(module, true)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(module, true)) { VirtualFile depManifest = AndroidRootUtil.getManifestFile(depFacet); if (depManifest != null) { myResourceTimestamps.put(depManifest.getPath(), depManifest.getTimeStamp()); diff --git a/plugins/android/src/org/jetbrains/android/facet/AndroidFacet.java b/plugins/android/src/org/jetbrains/android/facet/AndroidFacet.java index 41b18b479b30..938709aa0d54 100644 --- a/plugins/android/src/org/jetbrains/android/facet/AndroidFacet.java +++ b/plugins/android/src/org/jetbrains/android/facet/AndroidFacet.java @@ -576,7 +576,7 @@ public class AndroidFacet extends Facet { private VirtualFile[] collectDependencies() { final List dependenciesList = new ArrayList(); - for (AndroidFacet depFacet : AndroidSdkUtils.getAndroidDependencies(getModule(), true)) { + for (AndroidFacet depFacet : AndroidUtils.getAndroidDependencies(getModule(), true)) { final Module depModule = depFacet.getModule(); final VirtualFile libDir = getBaseAndroidContentRoot(depModule); if (libDir != null) { diff --git a/plugins/android/src/org/jetbrains/android/resourceManagers/LocalResourceManager.java b/plugins/android/src/org/jetbrains/android/resourceManagers/LocalResourceManager.java index b2dcdb5a94da..8ee3f3974bf7 100644 --- a/plugins/android/src/org/jetbrains/android/resourceManagers/LocalResourceManager.java +++ b/plugins/android/src/org/jetbrains/android/resourceManagers/LocalResourceManager.java @@ -46,7 +46,6 @@ import org.jetbrains.android.dom.resources.ResourceElement; import org.jetbrains.android.dom.resources.Resources; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidRootUtil; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.android.util.AndroidBundle; import org.jetbrains.android.util.AndroidResourceUtil; import org.jetbrains.android.util.AndroidUtils; @@ -121,7 +120,7 @@ public class LocalResourceManager extends ResourceManager { if (resDir != null && !result.add(resDir)) { return; } - for (AndroidFacet depFacet : AndroidSdkUtils.getAllAndroidDependencies(facet.getModule(), false)) { + for (AndroidFacet depFacet : AndroidUtils.getAllAndroidDependencies(facet.getModule(), false)) { collectResourceDirs(depFacet, result, visited); } } diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java index 9ec7dcb35697..e8f9aaeb1de9 100644 --- a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkUtils.java @@ -32,7 +32,10 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.projectRoots.*; import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil; -import com.intellij.openapi.roots.*; +import com.intellij.openapi.roots.JavadocOrderRootType; +import com.intellij.openapi.roots.ModifiableRootModel; +import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.ui.OrderRoot; import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService; import com.intellij.openapi.ui.Messages; @@ -42,7 +45,6 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.HashSet; import org.jetbrains.android.actions.AndroidEnableDdmsAction; -import org.jetbrains.android.dom.manifest.Manifest; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.android.facet.AndroidRootUtil; import org.jetbrains.android.util.AndroidBundle; @@ -447,83 +449,6 @@ public class AndroidSdkUtils { return null; } - @NotNull - public static List getAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) { - final List depFacets = new ArrayList(); - - for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) { - if (orderEntry instanceof ModuleOrderEntry) { - final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry; - - if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) { - final Module depModule = moduleOrderEntry.getModule(); - - if (depModule != null) { - final AndroidFacet depFacet = AndroidFacet.getInstance(depModule); - - if (depFacet != null && (!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT)) { - depFacets.add(depFacet); - } - } - } - } - } - return depFacets; - } - - @NotNull - public static List getAllAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) { - final List result = new ArrayList(); - collectAllAndroidDependencies(module, androidLibrariesOnly, result, new HashSet()); - return result; - } - - private static void collectAllAndroidDependencies(Module module, - boolean androidLibrariesOnly, - List result, - Set visited) { - for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) { - if (orderEntry instanceof ModuleOrderEntry) { - final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry; - - if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) { - final Module depModule = moduleOrderEntry.getModule(); - - if (depModule != null) { - final AndroidFacet depFacet = AndroidFacet.getInstance(depModule); - - if (depFacet != null && - (!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT) && - visited.add(depFacet)) { - collectAllAndroidDependencies(depModule, androidLibrariesOnly, result, visited); - result.add(0, depFacet); - } - } - } - } - } - } - - @NotNull - public static Set getDepLibsPackages(Module module) { - final Set result = new HashSet(); - final HashSet visited = new HashSet(); - - if (visited.add(module)) { - for (AndroidFacet depFacet : getAllAndroidDependencies(module, true)) { - final Manifest manifest = depFacet.getManifest(); - - if (manifest != null) { - String aPackage = manifest.getPackage().getValue(); - if (aPackage != null) { - result.add(aPackage); - } - } - } - } - return result; - } - @Nullable public static AndroidDebugBridge getDebugBridge(@NotNull Project project) { final List facets = ProjectFacetManager.getInstance(project).getFacets(AndroidFacet.ID); diff --git a/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java b/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java index 3542d6aaf825..53e348ad7f02 100644 --- a/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java +++ b/plugins/android/src/org/jetbrains/android/util/AndroidResourceUtil.java @@ -40,7 +40,6 @@ import org.jetbrains.android.dom.resources.Item; import org.jetbrains.android.dom.resources.ResourceElement; import org.jetbrains.android.dom.resources.Resources; import org.jetbrains.android.facet.AndroidFacet; -import org.jetbrains.android.sdk.AndroidSdkUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -535,7 +534,7 @@ public class AndroidResourceUtil { return true; } - for (String aPackage : AndroidSdkUtils.getDepLibsPackages(facet.getModule())) { + for (String aPackage : AndroidUtils.getDepLibsPackages(facet.getModule())) { if (javaFile.getPackageName().equals(aPackage)) { return true; } diff --git a/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java b/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java index 79f363e98968..90d506c45efd 100644 --- a/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java +++ b/plugins/android/src/org/jetbrains/android/util/AndroidUtils.java @@ -42,8 +42,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ModifiableRootModel; -import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.*; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.popup.JBPopup; import com.intellij.openapi.ui.popup.JBPopupFactory; @@ -637,4 +636,81 @@ public class AndroidUtils { } return result; } + + @NotNull + public static List getAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) { + final List depFacets = new ArrayList(); + + for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) { + if (orderEntry instanceof ModuleOrderEntry) { + final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry; + + if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) { + final Module depModule = moduleOrderEntry.getModule(); + + if (depModule != null) { + final AndroidFacet depFacet = AndroidFacet.getInstance(depModule); + + if (depFacet != null && (!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT)) { + depFacets.add(depFacet); + } + } + } + } + } + return depFacets; + } + + @NotNull + public static List getAllAndroidDependencies(@NotNull Module module, boolean androidLibrariesOnly) { + final List result = new ArrayList(); + collectAllAndroidDependencies(module, androidLibrariesOnly, result, new HashSet()); + return result; + } + + private static void collectAllAndroidDependencies(Module module, + boolean androidLibrariesOnly, + List result, + Set visited) { + for (OrderEntry orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) { + if (orderEntry instanceof ModuleOrderEntry) { + final ModuleOrderEntry moduleOrderEntry = (ModuleOrderEntry)orderEntry; + + if (moduleOrderEntry.getScope() == DependencyScope.COMPILE) { + final Module depModule = moduleOrderEntry.getModule(); + + if (depModule != null) { + final AndroidFacet depFacet = AndroidFacet.getInstance(depModule); + + if (depFacet != null && + (!androidLibrariesOnly || depFacet.getConfiguration().LIBRARY_PROJECT) && + visited.add(depFacet)) { + collectAllAndroidDependencies(depModule, androidLibrariesOnly, result, visited); + result.add(0, depFacet); + } + } + } + } + } + } + + @NotNull + public static Set getDepLibsPackages(Module module) { + final Set result = new HashSet(); + final HashSet visited = new HashSet(); + + if (visited.add(module)) { + for (AndroidFacet depFacet : getAllAndroidDependencies(module, true)) { + final Manifest manifest = depFacet.getManifest(); + + if (manifest != null) { + String aPackage = manifest.getPackage().getValue(); + if (aPackage != null) { + result.add(aPackage); + } + } + } + } + return result; + } }