gradle: fix orphaned data computation

This commit is contained in:
Vladislav.Soroka
2016-03-03 17:48:04 +03:00
parent 740046c457
commit f714d40f7b
3 changed files with 8 additions and 27 deletions
@@ -354,6 +354,10 @@ public abstract class AbstractModuleDataService<E extends ModuleData> extends Ab
}
setBytecodeTargetLevel(project, module, moduleDataNode.getData());
}
for (Module module : modelsProvider.getModules()) {
module.putUserData(MODULE_DATA_KEY, null);
}
}
@Override
@@ -19,7 +19,6 @@ import com.intellij.openapi.externalSystem.model.DataNode;
import com.intellij.openapi.externalSystem.model.Key;
import com.intellij.openapi.externalSystem.model.ProjectKeys;
import com.intellij.openapi.externalSystem.model.project.ModuleData;
import com.intellij.openapi.externalSystem.model.project.OrderAware;
import com.intellij.openapi.externalSystem.model.project.ProjectData;
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
@@ -28,12 +27,11 @@ import com.intellij.openapi.externalSystem.util.Order;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.util.*;
import java.util.Collection;
import java.util.List;
/**
* Encapsulates functionality of importing external system module to the intellij project.
@@ -67,18 +65,7 @@ public class ModuleDataService extends AbstractModuleDataService<ModuleData> {
final String rootProjectPath = ExternalSystemApiUtil.getExternalRootProjectPath(module);
if (projectData.getLinkedExternalProjectPath().equals(rootProjectPath)) {
final String projectPath = ExternalSystemApiUtil.getExternalProjectPath(module);
final String projectId = ExternalSystemApiUtil.getExternalProjectId(module);
final DataNode<ModuleData> found = ContainerUtil.find(toImport, new Condition<DataNode<ModuleData>>() {
@Override
public boolean value(DataNode<ModuleData> node) {
final ModuleData moduleData = node.getData();
return moduleData.getId().equals(projectId) && moduleData.getLinkedExternalProjectPath().equals(projectPath);
}
});
if (found == null || !FileUtil.pathsEqual(module.getModuleFilePath(), found.getData().getModuleFilePath())) {
if (module.getUserData(AbstractModuleDataService.MODULE_DATA_KEY) == null) {
orphanIdeModules.add(module);
}
}
@@ -26,7 +26,6 @@ import com.intellij.openapi.externalSystem.util.Order;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.Condition;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData;
@@ -66,16 +65,7 @@ public class GradleSourceSetDataService extends AbstractModuleDataService<Gradle
final String rootProjectPath = ExternalSystemApiUtil.getExternalRootProjectPath(module);
if (projectData.getLinkedExternalProjectPath().equals(rootProjectPath)) {
final String projectId = ExternalSystemApiUtil.getExternalProjectId(module);
final DataNode<GradleSourceSetData> found = ContainerUtil.find(toImport, new Condition<DataNode<GradleSourceSetData>>() {
@Override
public boolean value(DataNode<GradleSourceSetData> node) {
return node.getData().getId().equals(projectId);
}
});
if (found == null) {
if (module.getUserData(AbstractModuleDataService.MODULE_DATA_KEY) == null) {
orphanIdeModules.add(module);
}
}