blob: 057c348c564238cd413bfa8ddb2bb2c486a18942 [file] [log] [blame]
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;
}
}