diff options
Diffstat (limited to 'platform/util/src/com/intellij/util/containers/ContainerUtil.java')
-rw-r--r-- | platform/util/src/com/intellij/util/containers/ContainerUtil.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/platform/util/src/com/intellij/util/containers/ContainerUtil.java b/platform/util/src/com/intellij/util/containers/ContainerUtil.java index 4a9c7bde5614..6052df2b701e 100644 --- a/platform/util/src/com/intellij/util/containers/ContainerUtil.java +++ b/platform/util/src/com/intellij/util/containers/ContainerUtil.java @@ -1417,6 +1417,13 @@ public class ContainerUtil extends ContainerUtilRt { } } + @NotNull + public static <T> List<T> sorted(@NotNull Collection<T> list, @NotNull Comparator<T> comparator) { + List<T> sorted = newArrayList(list); + sort(sorted, comparator); + return sorted; + } + public static <T> void sort(@NotNull T[] a, @NotNull Comparator<T> comparator) { int size = a.length; @@ -2065,6 +2072,17 @@ public class ContainerUtil extends ContainerUtilRt { return collection == null || collection.isEmpty(); } + @NotNull + public static <T, C extends Collection<T>> C notNullize(@Nullable C collection) { + //noinspection unchecked + return collection == null ? (C)ContainerUtilRt.emptyList() : collection; + } + + @Nullable + public static <T, C extends Collection<T>> C nullize(@Nullable C collection) { + return isEmpty(collection) ? null : collection; + } + private interface ConcurrentMapFactory { @NotNull <T, V> ConcurrentMap<T, V> createMap(); @NotNull <T, V> ConcurrentMap<T, V> createMap(int initialCapacity); |