This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch ISIS-1846_internal_utils in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/ISIS-1846_internal_utils by this push: new 77b179b ISIS-1846 add capitalize to new _String utility + tests, cleanup Enums 77b179b is described below commit 77b179bfd285934eabc8436ded943bccb7efd9ec Author: Andi Huber <ahu...@apache.org> AuthorDate: Mon Jan 22 22:06:03 2018 +0100 ISIS-1846 add capitalize to new _String utility + tests, cleanup Enums --- .../apache/isis/applib/internal/base/_Strings.java | 20 ++++++++++- .../java/org/apache/isis/applib/util/Enums.java | 41 ++++++---------------- .../isis/applib/internal/base/StringsTest.java | 28 +++++++++++++++ 3 files changed, 58 insertions(+), 31 deletions(-) diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings.java b/core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings.java index ae4ad23..e8f3921 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings.java +++ b/core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings.java @@ -104,7 +104,25 @@ public final class _Strings { } return input.toUpperCase(); } - + + /** + * Converts the first character in {@code input} to upper case using the rules of the default locale. + * @param input + * @return null if {@code input} is null + */ + public static String capitalize(@Nullable final String input) { + if(input==null) { + return null; + } + if (input.length() == 0) { + return input; + } + if (input.length() == 1) { + return input.toUpperCase(); + } + return Character.toUpperCase(input.charAt(0)) + input.substring(1); + } + // -- SPLITTING /** diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/Enums.java b/core/applib/src/main/java/org/apache/isis/applib/util/Enums.java index bfc6549..0f73fc0 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/util/Enums.java +++ b/core/applib/src/main/java/org/apache/isis/applib/util/Enums.java @@ -19,10 +19,9 @@ package org.apache.isis.applib.util; -import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; -import com.google.common.collect.Iterables; +import java.util.stream.Collectors; + +import org.apache.isis.applib.internal.base._Strings; public final class Enums { @@ -33,12 +32,18 @@ public final class Enums { } public static String getFriendlyNameOf(String anEnumName) { - return Joiner.on(" ").join(Iterables.transform(Splitter.on("_").split(anEnumName), LOWER_CASE_THEN_CAPITALIZE)); + return _Strings.splitThenStream(anEnumName, "_") + .map(_Strings::lower) + .map(_Strings::capitalize) + .collect(Collectors.joining(" ")); } public static String getEnumNameFromFriendly(String anEnumFriendlyName) { - return Joiner.on("_").join(Iterables.transform(Splitter.on(" ").split(anEnumFriendlyName), UPPER_CASE)); + return _Strings.splitThenStream(anEnumFriendlyName, " ") + .map(_Strings::lower) + .map(_Strings::capitalize) + .collect(Collectors.joining("_")); } @@ -80,28 +85,4 @@ public final class Enums { } - private static Function<String, String> LOWER_CASE_THEN_CAPITALIZE = new Function<String, String>() { - @Override - public String apply(String input) { - return capitalize(input.toLowerCase()); - } - }; - - private static Function<String, String> UPPER_CASE = new Function<String, String>() { - @Override - public String apply(String input) { - return input.toUpperCase(); - } - }; - - private static String capitalize(final String str) { - if (str == null || str.length() == 0) { - return str; - } - if (str.length() == 1) { - return str.toUpperCase(); - } - return Character.toUpperCase(str.charAt(0)) + str.substring(1); - } - } diff --git a/core/applib/src/test/java/org/apache/isis/applib/internal/base/StringsTest.java b/core/applib/src/test/java/org/apache/isis/applib/internal/base/StringsTest.java index 6765de9..0180bc1 100644 --- a/core/applib/src/test/java/org/apache/isis/applib/internal/base/StringsTest.java +++ b/core/applib/src/test/java/org/apache/isis/applib/internal/base/StringsTest.java @@ -74,6 +74,34 @@ public class StringsTest { } @Test + public void capitalizeWithNull() throws Exception { + Assert.assertThat( + _Strings.capitalize(null), + nullValue()); + } + + @Test + public void capitalizeSize0() throws Exception { + Assert.assertThat( + _Strings.capitalize(""), + is("")); + } + + @Test + public void capitalizeSize1() throws Exception { + Assert.assertThat( + _Strings.capitalize("a"), + is("A")); + } + + @Test + public void capitalizeSize2() throws Exception { + Assert.assertThat( + _Strings.capitalize("ab"), + is("Ab")); + } + + @Test public void trimWithNull() throws Exception { Assert.assertThat( _Strings.trim(null), -- To stop receiving notification emails like this one, please contact ahu...@apache.org.