diff --git a/src/main/java/org/mvplugins/multiverse/core/utils/StringFormatter.java b/src/main/java/org/mvplugins/multiverse/core/utils/StringFormatter.java index 6f93a88f9..acfe5da65 100644 --- a/src/main/java/org/mvplugins/multiverse/core/utils/StringFormatter.java +++ b/src/main/java/org/mvplugins/multiverse/core/utils/StringFormatter.java @@ -3,6 +3,7 @@ import com.google.common.base.Strings; import com.google.common.collect.Sets; import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; @@ -33,15 +34,15 @@ private StringFormatter() { * @param list the list of strings to join. If the list is empty, an empty string is returned. * @return the concatenated string */ - public static @NotNull String joinAnd(List list) { + public static @NotNull String joinAnd(@Nullable List list) { return join(list, ", ", " and "); } - public static @NotNull String join(Collection list, String separator) { + public static @NotNull String join(@Nullable Collection list, @NotNull String separator) { if (list == null || list.isEmpty()) { return ""; } - return list.stream().map(String::valueOf).collect(Collectors.joining(separator)).toString(); + return list.stream().map(String::valueOf).collect(Collectors.joining(separator)); } /** @@ -53,7 +54,7 @@ private StringFormatter() { * @param lastSeparator the separator to use before the last element. For example, " and ". * @return the concatenated string */ - public static @NotNull String join(List list, String separator, String lastSeparator) { + public static @NotNull String join(@Nullable List list, @NotNull String separator, @NotNull String lastSeparator) { if (list == null || list.isEmpty()) { return ""; } @@ -116,7 +117,7 @@ public static Collection addOnToCommaSeparated(@Nullable String input, @ * @param args The args to parse * @return The parsed args */ - public static Collection parseQuotesInArgs(String[] args) { + public static @NotNull Collection parseQuotesInArgs(@NotNull String[] args) { List result = new ArrayList<>(args.length); StringBuilder current = new StringBuilder(); boolean inQuotes = false; @@ -161,8 +162,9 @@ public static Collection parseQuotesInArgs(String[] args) { * @param input The string to add quotes to * @return The quoted string */ - public static String quoteMultiWordString(String input) { - return input.contains(" ") ? "\"" + input + "\"" : input; + @Contract("null -> null") + public static @Nullable String quoteMultiWordString(@Nullable String input) { + return input != null && input.contains(" ") ? "\"" + input + "\"" : input; } /** diff --git a/src/test/java/org/mvplugins/multiverse/core/utils/StringFormatterTest.kt b/src/test/java/org/mvplugins/multiverse/core/utils/StringFormatterTest.kt index ff1de1f5f..bd51a43c4 100644 --- a/src/test/java/org/mvplugins/multiverse/core/utils/StringFormatterTest.kt +++ b/src/test/java/org/mvplugins/multiverse/core/utils/StringFormatterTest.kt @@ -2,6 +2,7 @@ package org.mvplugins.multiverse.core.utils import kotlin.test.Test import kotlin.test.assertEquals +import kotlin.test.assertNull class StringFormatterTest { @Test @@ -42,6 +43,7 @@ class StringFormatterTest { "test", StringFormatter.quoteMultiWordString("test") ) + assertNull(StringFormatter.quoteMultiWordString(null)) } @Test