| package org.jetbrains.android.importDependencies; |
| |
| import com.intellij.openapi.module.Module; |
| import com.intellij.openapi.roots.ModuleRootManager; |
| import com.intellij.openapi.roots.ModuleRootModificationUtil; |
| import org.jetbrains.android.util.AndroidBundle; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * @author Eugene.Kudelevsky |
| */ |
| class AddModuleDependencyTask extends ImportDependenciesTask { |
| private final ModuleProvider myModuleProvider; |
| private final ModuleProvider myDepModuleProvider; |
| |
| public AddModuleDependencyTask(@NotNull ModuleProvider moduleProvider, @NotNull ModuleProvider depModuleProvider) { |
| myModuleProvider = moduleProvider; |
| myDepModuleProvider = depModuleProvider; |
| } |
| |
| @Nullable |
| @Override |
| public Exception perform() { |
| final Module module = myModuleProvider.getModule(); |
| final Module depModule = myDepModuleProvider.getModule(); |
| if (module == null || depModule == null) { |
| return null; |
| } |
| final ModuleRootManager rootManager = ModuleRootManager.getInstance(module); |
| |
| if (!rootManager.isDependsOn(depModule)) { |
| ModuleRootModificationUtil.addDependency(module, depModule); |
| } |
| return null; |
| } |
| |
| @NotNull |
| @Override |
| public String getTitle() { |
| return AndroidBundle.message("android.import.dependencies.add.module.dependency.task.title", myModuleProvider.getModuleName(), |
| myDepModuleProvider.getModuleName()); |
| } |
| |
| @Override |
| public boolean equals(Object o) { |
| if (this == o) return true; |
| if (o == null || getClass() != o.getClass()) return false; |
| |
| AddModuleDependencyTask that = (AddModuleDependencyTask)o; |
| |
| if (!myDepModuleProvider.equals(that.myDepModuleProvider)) return false; |
| if (!myModuleProvider.equals(that.myModuleProvider)) return false; |
| |
| return true; |
| } |
| |
| @Override |
| public int hashCode() { |
| int result = myModuleProvider.hashCode(); |
| result = 31 * result + myDepModuleProvider.hashCode(); |
| return result; |
| } |
| } |