diff --git a/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticUsageRenamer.java b/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticUsageRenamer.java index 7d99901d3b84..ce258c3cd013 100644 --- a/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticUsageRenamer.java +++ b/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticUsageRenamer.java @@ -15,6 +15,7 @@ */ package com.intellij.refactoring.rename.naming; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.usages.RenameableUsage; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -37,15 +38,8 @@ public abstract class AutomaticUsageRenamer { myNewName = newName; List elements = new ArrayList(renamedElements); Collections.sort(elements, new Comparator() { - private int compareNullable(@Nullable String s1, @Nullable String s2) { - if (s1 != null) { - return s2 == null ? 1 : s1.compareTo(s2); - } - return s2 == null ? 0 : -1; - } - public int compare(T o1, T o2) { - int i = compareNullable(getSourceName(o1), getSourceName(o2)); + int i = StringUtil.compare(getSourceName(o1), getSourceName(o2), false); if (i != 0) return i; return getName(o1).compareTo(getName(o2)); } diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/WeightBasedComparator.java b/platform/platform-api/src/com/intellij/ui/treeStructure/WeightBasedComparator.java index 6dbbe575ecae..dabfb1c81019 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/WeightBasedComparator.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/WeightBasedComparator.java @@ -16,6 +16,7 @@ package com.intellij.ui.treeStructure; import com.intellij.ide.util.treeView.NodeDescriptor; +import com.intellij.openapi.util.text.StringUtil; import java.util.Comparator; @@ -57,10 +58,6 @@ public class WeightBasedComparator implements Comparator { } protected static int compareToString(final NodeDescriptor first, final NodeDescriptor second) { - String s1 = first.toString(); - String s2 = second.toString(); - if (s1 == null) return s2 == null ? 0 : -1; - if (s2 == null) return +1; - return s1.compareToIgnoreCase(s2); + return StringUtil.compare(first.toString(), second.toString(), true); } } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerColumnInfo.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerColumnInfo.java index 1020741f27f6..88d5d02f35e5 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerColumnInfo.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerColumnInfo.java @@ -17,6 +17,7 @@ package com.intellij.ide.plugins; import com.intellij.ide.IdeBundle; import com.intellij.openapi.util.IconLoader; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vcs.FileStatus; import com.intellij.util.text.DateFormatUtil; import com.intellij.util.ui.ColumnInfo; @@ -94,9 +95,7 @@ class PluginManagerColumnInfo extends ColumnInfo { case COLUMN_NAME: return new Comparator() { public int compare(IdeaPluginDescriptor o1, IdeaPluginDescriptor o2) { - String name1 = o1.getName(); - String name2 = o2.getName(); - return compareStrings(name1, name2); + return StringUtil.compare(o1.getName(), o2.getName(), true); } }; @@ -120,9 +119,7 @@ class PluginManagerColumnInfo extends ColumnInfo { case COLUMN_CATEGORY: return new Comparator() { public int compare(IdeaPluginDescriptor o1, IdeaPluginDescriptor o2) { - String cat1 = o1.getCategory(); - String cat2 = o2.getCategory(); - return compareStrings(cat1, cat2); + return StringUtil.compare(o1.getCategory(), o2.getCategory(), true); } }; @@ -148,21 +145,6 @@ class PluginManagerColumnInfo extends ColumnInfo { } } - public static int compareStrings(String str1, String str2) { - if (str1 == null && str2 == null) { - return 0; - } - else if (str1 == null) { - return -1; - } - else if (str2 == null) { - return 1; - } - else { - return str1.compareToIgnoreCase(str2); - } - } - @SuppressWarnings({"HardCodedStringLiteral"}) public static String getFormattedSize(String size) { if (size.equals("-1")) { diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index d09738bb9bc3..b28e7db3557d 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -1800,6 +1800,13 @@ public class StringUtil { return res; } + public static int compare(@Nullable String s1, @Nullable String s2, boolean ignoreCase) { + if (s1 == s2) return 0; + if (s1 == null) return -1; + if (s2 == null) return 1; + return ignoreCase ? s1.compareToIgnoreCase(s2) : s1.compareTo(s2); + } + public static int hashCode(@NotNull CharSequence s) { int result = 0; for (int i = 0; i < s.length(); i++) {