diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleDependencyUserChange.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleDependencyUserChange.java index 2cf43a33ec02..f06be43d1fba 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleDependencyUserChange.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleDependencyUserChange.java @@ -22,8 +22,8 @@ import org.jetbrains.annotations.Nullable; * @author Denis Zhdanov * @since 2/19/13 8:54 AM */ -public abstract class AbstractGradleDependencyUserChange - extends AbstractGradleModuleAwareUserChange +public abstract class AbstractGradleDependencyUserChange> + extends AbstractGradleModuleAwareUserChange { @Nullable @@ -66,11 +66,11 @@ public abstract class AbstractGradleDependencyUserChange o) { int cmp = super.compareTo(o); - if (cmp != 0) { + if (cmp != 0 || (!(o instanceof AbstractGradleDependencyUserChange))) { return cmp; } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleModuleAwareUserChange.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleModuleAwareUserChange.java index b61ef4a4dd1f..065eb1f9d794 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleModuleAwareUserChange.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleModuleAwareUserChange.java @@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable; * @author Denis Zhdanov * @since 2/19/13 8:48 AM */ -public abstract class AbstractGradleModuleAwareUserChange +public abstract class AbstractGradleModuleAwareUserChange> extends AbstractGradleUserProjectChange { @@ -67,7 +67,10 @@ public abstract class AbstractGradleModuleAwareUserChange o) { + if (!(o instanceof AbstractGradleModuleAwareUserChange)) { + return super.compareTo(o); + } AbstractGradleModuleAwareUserChange that = (AbstractGradleModuleAwareUserChange)o; if (myModuleName == null) { return that.myModuleName == null ? 0 : 1; diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleUserProjectChange.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleUserProjectChange.java index c866777b2927..42d840c4df74 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleUserProjectChange.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/AbstractGradleUserProjectChange.java @@ -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 implements GradleUserProjectChange { +public abstract class AbstractGradleUserProjectChange> implements GradleUserProjectChange { @SuppressWarnings("unchecked") @Nullable @@ -35,4 +36,9 @@ public abstract class AbstractGradleUserProjectChange o) { + return getClass().getName().compareTo(o.getClass().getName()); + } } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/GradleUserProjectChange.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/GradleUserProjectChange.java index 4fc50777f30f..77554ad450c7 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/GradleUserProjectChange.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/autoimport/GradleUserProjectChange.java @@ -28,7 +28,9 @@ import org.jetbrains.annotations.NotNull; * @author Denis Zhdanov * @since 2/18/13 8:03 PM */ -public interface GradleUserProjectChange extends PersistentStateComponent, Comparable { +public interface GradleUserProjectChange + extends PersistentStateComponent, Comparable> +{ void invite(@NotNull GradleUserProjectChangeVisitor visitor); } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleEntityManageHelper.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleEntityManageHelper.java index c9a8838b2a39..83c641eea130 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleEntityManageHelper.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleEntityManageHelper.java @@ -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 diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectManager.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectManager.java index 6f4fb8d40856..8f2321c13981 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectManager.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/manage/GradleProjectManager.java @@ -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()) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureHelper.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureHelper.java index f294e16eea16..2b3813415fa3 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureHelper.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/sync/GradleProjectStructureHelper.java @@ -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()) {