This is an automated email from the ASF dual-hosted git repository. vinoyang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-hudi.git
The following commit(s) were added to refs/heads/master by this push: new b8f9d0e [HUDI-615]: Add some methods and test cases for StringUtils. (#1338) b8f9d0e is described below commit b8f9d0ec4548a2487914c4cc982fc5e1f4e0c88c Author: Suneel Marthi <smar...@apache.org> AuthorDate: Mon Feb 17 01:13:33 2020 -0500 [HUDI-615]: Add some methods and test cases for StringUtils. (#1338) --- .../org/apache/hudi/common/util/StringUtils.java | 27 +++++++++ .../apache/hudi/common/util/TestStringUtils.java | 64 ++++++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/StringUtils.java b/hudi-common/src/main/java/org/apache/hudi/common/util/StringUtils.java index 63f02fe..d1e3305 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/StringUtils.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/StringUtils.java @@ -18,6 +18,8 @@ package org.apache.hudi.common.util; +import javax.annotation.Nullable; + /** * Simple utility for operations on strings. */ @@ -67,4 +69,29 @@ public class StringUtils { public static boolean isNullOrEmpty(String str) { return str == null || str.length() == 0; } + + + /** + * Returns the given string if it is non-null; the empty string otherwise. + * + * @param string the string to test and possibly return + * @return {@code string} itself if it is non-null; {@code ""} if it is null + */ + public static String nullToEmpty(@Nullable String string) { + return string == null ? "" : string; + } + + /** + * Returns the given string if it is nonempty; {@code null} otherwise. + * + * @param string the string to test and possibly return + * @return {@code string} itself if it is nonempty; {@code null} if it is empty or null + */ + public static @Nullable String emptyToNull(@Nullable String string) { + return stringIsNullOrEmpty(string) ? null : string; + } + + private static boolean stringIsNullOrEmpty(@Nullable String string) { + return string == null || string.isEmpty(); + } } diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestStringUtils.java b/hudi-common/src/test/java/org/apache/hudi/common/util/TestStringUtils.java new file mode 100644 index 0000000..05a0825 --- /dev/null +++ b/hudi-common/src/test/java/org/apache/hudi/common/util/TestStringUtils.java @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.hudi.common.util; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +public class TestStringUtils { + + private static final String[] STRINGS = {"This", "is", "a", "test"}; + + @Test + public void testStringJoinWithDelim() { + String joinedString = StringUtils.joinUsingDelim("-", STRINGS); + assertEquals(STRINGS.length, joinedString.split("-").length); + } + + @Test + public void testStringJoin() { + assertNotEquals(null, StringUtils.join("")); + assertNotEquals(null, StringUtils.join(STRINGS)); + } + + @Test + public void testStringNullToEmpty() { + String str = "This is a test"; + assertEquals(str, StringUtils.nullToEmpty(str)); + assertEquals("", StringUtils.nullToEmpty(null)); + } + + @Test + public void testStringEmptyToNull() { + assertNull(StringUtils.emptyToNull("")); + assertEquals("Test String", StringUtils.emptyToNull("Test String")); + } + + @Test + public void testStringNullOrEmpty() { + assertTrue(StringUtils.isNullOrEmpty(null)); + assertTrue(StringUtils.isNullOrEmpty("")); + assertNotEquals(null, StringUtils.isNullOrEmpty("this is not empty")); + assertTrue(StringUtils.isNullOrEmpty("")); + } +}