Author: niallp
Date: Sun Jan  9 03:33:40 2011
New Revision: 1056879

URL: http://svn.apache.org/viewvc?rev=1056879&view=rev
Log:
Port LANG-655 to LANG 2.x Branch - add defaultIfBlank() method to StringUtils

Modified:
    
commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/StringUtils.java
    
commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/StringUtilsTest.java

Modified: 
commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/StringUtils.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/StringUtils.java?rev=1056879&r1=1056878&r2=1056879&view=diff
==============================================================================
--- 
commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/StringUtils.java
 (original)
+++ 
commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/StringUtils.java
 Sun Jan  9 03:33:40 2011
@@ -5701,6 +5701,28 @@ public class StringUtils {
 
     /**
      * <p>Returns either the passed in String, or if the String is
+     * whitespace, empty ("") or <code>null</code>, the value of 
<code>defaultStr</code>.</p>
+     *
+     * <pre>
+     * StringUtils.defaultIfBlank(null, "NULL")  = "NULL"
+     * StringUtils.defaultIfBlank("", "NULL")    = "NULL"
+     * StringUtils.defaultIfBlank(" ", "NULL")   = "NULL"
+     * StringUtils.defaultIfBlank("bat", "NULL") = "bat"
+     * StringUtils.defaultIfBlank("", null)      = null
+     * </pre>
+     * @param str the String to check, may be null
+     * @param defaultStr  the default String to return
+     *  if the input is whitespace, empty ("") or <code>null</code>, may be 
null
+     * @return the passed in String, or the default
+     * @see StringUtils#defaultString(String, String)
+     * @since 2.6
+     */
+    public static String defaultIfBlank(String str, String defaultStr) {
+        return StringUtils.isBlank(str) ? defaultStr : str;
+    }
+
+    /**
+     * <p>Returns either the passed in String, or if the String is
      * empty or <code>null</code>, the value of <code>defaultStr</code>.</p>
      *
      * <pre>

Modified: 
commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/StringUtilsTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/StringUtilsTest.java?rev=1056879&r1=1056878&r2=1056879&view=diff
==============================================================================
--- 
commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/StringUtilsTest.java
 (original)
+++ 
commons/proper/lang/branches/LANG_2_X/src/test/java/org/apache/commons/lang/StringUtilsTest.java
 Sun Jan  9 03:33:40 2011
@@ -1515,6 +1515,16 @@ public class StringUtilsTest extends Tes
         assertNull(StringUtils.defaultIfEmpty("", null));
     }
 
+    public void testDefaultIfBlank_StringString() {
+        assertEquals("NULL", StringUtils.defaultIfBlank(null, "NULL"));
+        assertEquals("NULL", StringUtils.defaultIfBlank("", "NULL"));
+        assertEquals("NULL", StringUtils.defaultIfBlank(" ", "NULL"));
+        assertEquals("abc", StringUtils.defaultIfBlank("abc", "NULL"));
+        assertNull(StringUtils.defaultIfBlank("", null));
+        String s = StringUtils.defaultIfBlank("abc", "NULL");
+        assertEquals("abc", s);
+    }
+
     //-----------------------------------------------------------------------
     public void testDeprecatedEscapeFunctions_String() {
         assertEquals("", StringUtils.escape("") );


Reply via email to