mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-102086 Gradle: Preserve more explicit project structure changes on auto-import
Skip language level processing during auto-import
This commit is contained in:
+5
-5
@@ -22,8 +22,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
* @author Denis Zhdanov
|
||||
* @since 2/19/13 8:54 AM
|
||||
*/
|
||||
public abstract class AbstractGradleDependencyUserChange<T extends AbstractGradleDependencyUserChange>
|
||||
extends AbstractGradleModuleAwareUserChange
|
||||
public abstract class AbstractGradleDependencyUserChange<T extends AbstractGradleDependencyUserChange<T>>
|
||||
extends AbstractGradleModuleAwareUserChange<T>
|
||||
{
|
||||
|
||||
@Nullable
|
||||
@@ -66,11 +66,11 @@ public abstract class AbstractGradleDependencyUserChange<T extends AbstractGradl
|
||||
return true;
|
||||
}
|
||||
|
||||
@SuppressWarnings({"CovariantCompareTo", "unchecked"})
|
||||
@SuppressWarnings({"unchecked"})
|
||||
@Override
|
||||
public int compareTo(AbstractGradleModuleAwareUserChange o) {
|
||||
public int compareTo(@NotNull GradleUserProjectChange<?> o) {
|
||||
int cmp = super.compareTo(o);
|
||||
if (cmp != 0) {
|
||||
if (cmp != 0 || (!(o instanceof AbstractGradleDependencyUserChange))) {
|
||||
return cmp;
|
||||
}
|
||||
|
||||
|
||||
+5
-2
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
* @author Denis Zhdanov
|
||||
* @since 2/19/13 8:48 AM
|
||||
*/
|
||||
public abstract class AbstractGradleModuleAwareUserChange<T extends AbstractGradleModuleAwareUserChange>
|
||||
public abstract class AbstractGradleModuleAwareUserChange<T extends AbstractGradleModuleAwareUserChange<T>>
|
||||
extends AbstractGradleUserProjectChange<T>
|
||||
{
|
||||
|
||||
@@ -67,7 +67,10 @@ public abstract class AbstractGradleModuleAwareUserChange<T extends AbstractGrad
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public int compareTo(T o) {
|
||||
public int compareTo(@NotNull GradleUserProjectChange<?> o) {
|
||||
if (!(o instanceof AbstractGradleModuleAwareUserChange<?>)) {
|
||||
return super.compareTo(o);
|
||||
}
|
||||
AbstractGradleModuleAwareUserChange<T> that = (AbstractGradleModuleAwareUserChange<T>)o;
|
||||
if (myModuleName == null) {
|
||||
return that.myModuleName == null ? 0 : 1;
|
||||
|
||||
+7
-1
@@ -16,13 +16,14 @@
|
||||
package org.jetbrains.plugins.gradle.autoimport;
|
||||
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Denis Zhdanov
|
||||
* @since 2/18/13 8:29 PM
|
||||
*/
|
||||
public abstract class AbstractGradleUserProjectChange<T extends AbstractGradleUserProjectChange> implements GradleUserProjectChange<T> {
|
||||
public abstract class AbstractGradleUserProjectChange<T extends AbstractGradleUserProjectChange<T>> implements GradleUserProjectChange<T> {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Nullable
|
||||
@@ -35,4 +36,9 @@ public abstract class AbstractGradleUserProjectChange<T extends AbstractGradleUs
|
||||
public void loadState(T state) {
|
||||
XmlSerializerUtil.copyBean(state, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(@NotNull GradleUserProjectChange<?> o) {
|
||||
return getClass().getName().compareTo(o.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -28,7 +28,9 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @author Denis Zhdanov
|
||||
* @since 2/18/13 8:03 PM
|
||||
*/
|
||||
public interface GradleUserProjectChange<T extends GradleUserProjectChange> extends PersistentStateComponent<T>, Comparable<T> {
|
||||
public interface GradleUserProjectChange<T extends GradleUserProjectChange>
|
||||
extends PersistentStateComponent<T>, Comparable<GradleUserProjectChange<?>>
|
||||
{
|
||||
|
||||
void invite(@NotNull GradleUserProjectChangeVisitor visitor);
|
||||
}
|
||||
|
||||
+8
-4
@@ -207,10 +207,14 @@ public class GradleEntityManageHelper {
|
||||
private static void processProjectRenameChange(@NotNull GradleProjectRenameChange change, @NotNull EliminateChangesContext context) {
|
||||
context.projectManager.renameProject(change.getGradleValue(), context.projectStructureHelper.getProject(), context.synchronous);
|
||||
}
|
||||
|
||||
// Don't auto-apply language level change because we can't correctly process language level change manually made
|
||||
// by a user - there is crazy processing related to project reloading after language level change and there is just
|
||||
// no normal way to inject there.
|
||||
|
||||
private static void processLanguageLevelChange(@NotNull GradleLanguageLevelChange change, @NotNull EliminateChangesContext context) {
|
||||
context.projectManager.setLanguageLevel(change.getGradleValue(), context.projectStructureHelper.getProject(), context.synchronous);
|
||||
}
|
||||
// private static void processLanguageLevelChange(@NotNull GradleLanguageLevelChange change, @NotNull EliminateChangesContext context) {
|
||||
// context.projectManager.setLanguageLevel(change.getGradleValue(), context.projectStructureHelper.getProject(), context.synchronous);
|
||||
// }
|
||||
|
||||
private static void processModulePresenceChange(@NotNull GradleModulePresenceChange change, @NotNull EliminateChangesContext context) {
|
||||
GradleModuleId id = change.getGradleEntity();
|
||||
@@ -386,7 +390,7 @@ public class GradleEntityManageHelper {
|
||||
|
||||
@Override
|
||||
public void visit(@NotNull GradleLanguageLevelChange change) {
|
||||
processLanguageLevelChange(change, EliminateChangesContext.this);
|
||||
// processLanguageLevelChange(change, EliminateChangesContext.this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.jetbrains.plugins.gradle.util.GradleUtil;
|
||||
*/
|
||||
public class GradleProjectManager {
|
||||
|
||||
@SuppressWarnings("MethodMayBeStatic")
|
||||
public void renameProject(@NotNull final String newName, @NotNull final Project project, boolean synchronous) {
|
||||
if (!(project instanceof ProjectEx) || newName.equals(project.getName())) {
|
||||
return;
|
||||
@@ -40,6 +41,7 @@ public class GradleProjectManager {
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressWarnings("MethodMayBeStatic")
|
||||
public void setLanguageLevel(@NotNull final LanguageLevel languageLevel, @NotNull Project project, boolean synchronous) {
|
||||
final LanguageLevelProjectExtension languageLevelExtension = LanguageLevelProjectExtension.getInstance(project);
|
||||
if (languageLevel == languageLevelExtension.getLanguageLevel()) {
|
||||
|
||||
@@ -250,6 +250,7 @@ public class GradleProjectStructureHelper {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("MethodMayBeStatic")
|
||||
@Nullable
|
||||
public LibraryOrderEntry findIdeLibraryDependency(@NotNull final String libraryName,
|
||||
@NotNull ModifiableRootModel model)
|
||||
@@ -386,6 +387,7 @@ public class GradleProjectStructureHelper {
|
||||
return null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("MethodMayBeStatic")
|
||||
@Nullable
|
||||
public ModuleOrderEntry findIdeModuleDependency(@NotNull GradleModuleDependency dependency, @NotNull ModifiableRootModel model) {
|
||||
for (OrderEntry entry : model.getOrderEntries()) {
|
||||
|
||||
Reference in New Issue
Block a user