Author: bayard Date: Thu Oct 24 19:54:47 2013 New Revision: 1535515 URL: http://svn.apache.org/r1535515 Log: Applying Alexander Muthmann's patch from LANG-848, adding isBlank/isEmpty CharSequence... variants
Modified: commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java Modified: commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java?rev=1535515&r1=1535514&r2=1535515&view=diff ============================================================================== --- commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java (original) +++ commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/StringUtils.java Thu Oct 24 19:54:47 2013 @@ -236,7 +236,54 @@ public class StringUtils { public static boolean isNotEmpty(final CharSequence cs) { return !StringUtils.isEmpty(cs); } - + + /** + * <p>Checks if any one of the CharSequences are empty ("") or null.</p> + * + * <pre> + * StringUtils.isAnyEmpty(null) = true + * StringUtils.isAnyEmpty(null, "foo") = true + * StringUtils.isAnyEmpty("", "bar") = true + * StringUtils.isAnyEmpty("bob", "") = true + * StringUtils.isAnyEmpty(" bob ", null) = true + * StringUtils.isAnyEmpty(" ", "bar") = false + * StringUtils.isAnyEmpty("foo", "bar") = false + * </pre> + * + * @param css the CharSequences to check, may be null or empty + * @return {@code true} if any of the CharSequences are empty or null + */ + public static boolean isAnyEmpty(CharSequence... css) { + if (ArrayUtils.isEmpty(css)) { + return true; + } + for (CharSequence cs : css){ + if (isEmpty(cs)) { + return true; + } + } + return false; + } + + /** + * <p>Checks if none of the CharSequences are empty ("") or null.</p> + * + * <pre> + * StringUtils.isNoneEmpty(null) = false + * StringUtils.isNoneEmpty(null, "foo") = false + * StringUtils.isNoneEmpty("", "bar") = false + * StringUtils.isNoneEmpty("bob", "") = false + * StringUtils.isNoneEmpty(" bob ", null) = false + * StringUtils.isNoneEmpty(" ", "bar") = true + * StringUtils.isNoneEmpty("foo", "bar") = true + * </pre> + * + * @param css the CharSequences to check, may be null or empty + * @return {@code true} if none of the CharSequences are empty or null + */ + public static boolean isNoneEmpty(CharSequence... css) { + return !isAnyEmpty(css); + } /** * <p>Checks if a CharSequence is whitespace, empty ("") or null.</p> * @@ -286,6 +333,56 @@ public class StringUtils { public static boolean isNotBlank(final CharSequence cs) { return !StringUtils.isBlank(cs); } + + /** + * <p>Checks if any one of the CharSequences are blank ("") or null and not whitespace only..</p> + * + * <pre> + * StringUtils.isAnyBlank(null) = true + * StringUtils.isAnyBlank(null, "foo") = true + * StringUtils.isAnyBlank(null, null) = true + * StringUtils.isAnyBlank("", "bar") = true + * StringUtils.isAnyBlank("bob", "") = true + * StringUtils.isAnyBlank(" bob ", null) = true + * StringUtils.isAnyBlank(" ", "bar") = true + * StringUtils.isAnyBlank("foo", "bar") = false + * </pre> + * + * @param css the CharSequences to check, may be null or empty + * @return {@code true} if any of the CharSequences are blank or null or whitespace only + */ + public static boolean isAnyBlank(CharSequence... css) { + if (ArrayUtils.isEmpty(css)) { + return true; + } + for (CharSequence cs : css){ + if (isBlank(cs)) { + return true; + } + } + return false; + } + + /** + * <p>Checks if none of the CharSequences are blank ("") or null and whitespace only..</p> + * + * <pre> + * StringUtils.isNoneBlank(null) = false + * StringUtils.isNoneBlank(null, "foo") = false + * StringUtils.isNoneBlank(null, null) = false + * StringUtils.isNoneBlank("", "bar") = false + * StringUtils.isNoneBlank("bob", "") = false + * StringUtils.isNoneBlank(" bob ", null) = false + * StringUtils.isNoneBlank(" ", "bar") = false + * StringUtils.isNoneBlank("foo", "bar") = true + * </pre> + * + * @param css the CharSequences to check, may be null or empty + * @return {@code true} if none of the CharSequences are blank or null or whitespace only + */ + public static boolean isNoneBlank(CharSequence... css) { + return !isAnyBlank(css); + } // Trim //----------------------------------------------------------------------- Modified: commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java?rev=1535515&r1=1535514&r2=1535515&view=diff ============================================================================== --- commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java (original) +++ commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/StringUtilsTest.java Thu Oct 24 19:54:47 2013 @@ -125,6 +125,89 @@ public class StringUtilsTest { //----------------------------------------------------------------------- @Test + public void testisEmpty(){ + assertTrue(StringUtils.isEmpty(null)); + assertTrue(StringUtils.isEmpty("")); + assertFalse(StringUtils.isEmpty(" ")); + assertFalse(StringUtils.isEmpty("bob")); + assertFalse(StringUtils.isEmpty(" bob ")); + } + + @Test + public void testisNotEmpty(){ + assertFalse(StringUtils.isNotEmpty(null)); + assertFalse(StringUtils.isNotEmpty("")); + assertTrue(StringUtils.isNotEmpty(" ")); + assertTrue(StringUtils.isNotEmpty("bob")); + assertTrue(StringUtils.isNotEmpty(" bob ")); + } + + @Test + public void testisAnyEmpty(){ + assertTrue(StringUtils.isAnyEmpty(null)); + assertTrue(StringUtils.isAnyEmpty(null, "foo")); + assertTrue(StringUtils.isAnyEmpty("", "bar")); + assertTrue(StringUtils.isAnyEmpty("bob", "")); + assertTrue(StringUtils.isAnyEmpty(" bob ", null)); + assertFalse(StringUtils.isAnyEmpty(" ","bar")); + assertFalse(StringUtils.isAnyEmpty("foo","bar")); + } + + @Test + public void testisNoneEmpty(){ + assertFalse(StringUtils.isNoneEmpty(null)); + assertFalse(StringUtils.isNoneEmpty(null, "foo")); + assertFalse(StringUtils.isNoneEmpty("", "bar")); + assertFalse(StringUtils.isNoneEmpty("bob", "")); + assertFalse(StringUtils.isNoneEmpty(" bob ", null)); + assertTrue(StringUtils.isNoneEmpty(" ", "bar")); + assertTrue(StringUtils.isNoneEmpty("foo", "bar")); + } + + @Test + public void testisBlank(){ + assertTrue(StringUtils.isBlank(null)); + assertTrue(StringUtils.isBlank("")); + assertTrue(StringUtils.isBlank(" ")); + assertFalse(StringUtils.isBlank("bob")); + assertFalse(StringUtils.isBlank(" bob ")); + } + + @Test + public void testisNotBlank(){ + assertFalse(StringUtils.isNotBlank(null)); + assertFalse(StringUtils.isNotBlank("")); + assertFalse(StringUtils.isNotBlank(" ")); + assertTrue(StringUtils.isNotBlank("bob")); + assertTrue(StringUtils.isNotBlank(" bob ")); + } + + @Test + public void testisAnyBlank(){ + assertTrue(StringUtils.isAnyBlank(null)); + assertTrue(StringUtils.isAnyBlank(null, "foo")); + assertTrue(StringUtils.isAnyBlank(null, null)); + assertTrue(StringUtils.isAnyBlank("", "bar")); + assertTrue(StringUtils.isAnyBlank("bob", "")); + assertTrue(StringUtils.isAnyBlank(" bob ", null)); + assertTrue(StringUtils.isAnyBlank(" ","bar")); + assertFalse(StringUtils.isAnyBlank("foo","bar")); + } + + @Test + public void testisNoneBlank(){ + assertFalse(StringUtils.isNoneBlank(null)); + assertFalse(StringUtils.isNoneBlank(null, "foo")); + assertFalse(StringUtils.isNoneBlank(null, null)); + assertFalse(StringUtils.isNoneBlank("", "bar")); + assertFalse(StringUtils.isNoneBlank("bob", "")); + assertFalse(StringUtils.isNoneBlank(" bob ", null)); + assertFalse(StringUtils.isNoneBlank(" ", "bar")); + assertTrue(StringUtils.isNoneBlank("foo", "bar")); + } + + //----------------------------------------------------------------------- + @Test public void testCaseFunctions() { assertEquals(null, StringUtils.upperCase(null)); assertEquals(null, StringUtils.upperCase(null, Locale.ENGLISH));