Author: bayard
Date: Thu Nov 4 04:05:57 2010
New Revision: 1030830
URL: http://svn.apache.org/viewvc?rev=1030830&view=rev
Log:
Adding StringUtils.defaultIfBlank(String, String). Requested by Adam Dyga,
patch from Nicklas Holm. LANG-655
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=1030830&r1=1030829&r2=1030830&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 Nov 4 04:05:57 2010
@@ -5516,6 +5516,28 @@ public class StringUtils {
/**
* <p>Returns either the passed in CharSequence, or if the CharSequence 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 <T> the specific kind of CharSequence
+ * @param str the CharSequence to check, may be null
+ * @param defaultStr the default CharSequence to return
+ * if the input is whitespace, empty ("") or <code>null</code>, may be
null
+ * @return the passed in CharSequence, or the default
+ * @see StringUtils#defaultString(String, String)
+ */
+ public static <T extends CharSequence> T defaultIfBlank(T str, T
defaultStr) {
+ return StringUtils.isBlank(str) ? defaultStr : str;
+ }
+
+ /**
+ * <p>Returns either the passed in CharSequence, or if the CharSequence is
* empty or <code>null</code>, the value of <code>defaultStr</code>.</p>
*
* <pre>
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=1030830&r1=1030829&r2=1030830&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 Nov 4 04:05:57 2010
@@ -1447,6 +1447,17 @@ public class StringUtilsTest extends Tes
assertEquals("abc", s);
}
+ 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));
+ // Tests compatibility for the API return type
+ String s = StringUtils.defaultIfBlank("abc", "NULL");
+ assertEquals("abc", s);
+ }
+
public void testDefaultIfEmpty_StringBuilders() {
assertEquals("NULL", StringUtils.defaultIfEmpty(new StringBuilder(""),
new StringBuilder("NULL")).toString());
assertEquals("abc", StringUtils.defaultIfEmpty(new
StringBuilder("abc"), new StringBuilder("NULL")).toString());
@@ -1456,6 +1467,16 @@ public class StringUtilsTest extends Tes
assertEquals("abc", s.toString());
}
+ public void testDefaultIfBlank_StringBuilders() {
+ assertEquals("NULL", StringUtils.defaultIfBlank(new StringBuilder(""),
new StringBuilder("NULL")).toString());
+ assertEquals("NULL", StringUtils.defaultIfBlank(new StringBuilder("
"), new StringBuilder("NULL")).toString());
+ assertEquals("abc", StringUtils.defaultIfBlank(new
StringBuilder("abc"), new StringBuilder("NULL")).toString());
+ assertNull(StringUtils.defaultIfBlank(new StringBuilder(""), null));
+ // Tests compatibility for the API return type
+ StringBuilder s = StringUtils.defaultIfBlank(new StringBuilder("abc"),
new StringBuilder("NULL"));
+ assertEquals("abc", s.toString());
+ }
+
public void testDefaultIfEmpty_StringBuffers() {
assertEquals("NULL", StringUtils.defaultIfEmpty(new StringBuffer(""),
new StringBuffer("NULL")).toString());
assertEquals("abc", StringUtils.defaultIfEmpty(new
StringBuffer("abc"), new StringBuffer("NULL")).toString());
@@ -1465,6 +1486,16 @@ public class StringUtilsTest extends Tes
assertEquals("abc", s.toString());
}
+ public void testDefaultIfBlank_StringBuffers() {
+ assertEquals("NULL", StringUtils.defaultIfBlank(new StringBuffer(""),
new StringBuffer("NULL")).toString());
+ assertEquals("NULL", StringUtils.defaultIfBlank(new StringBuffer(" "),
new StringBuffer("NULL")).toString());
+ assertEquals("abc", StringUtils.defaultIfBlank(new
StringBuffer("abc"), new StringBuffer("NULL")).toString());
+ assertNull(StringUtils.defaultIfBlank(new StringBuffer(""), null));
+ // Tests compatibility for the API return type
+ StringBuffer s = StringUtils.defaultIfBlank(new StringBuffer("abc"),
new StringBuffer("NULL"));
+ assertEquals("abc", s.toString());
+ }
+
public void testDefaultIfEmpty_CharBuffers() {
assertEquals("NULL", StringUtils.defaultIfEmpty(CharBuffer.wrap(""),
CharBuffer.wrap("NULL")).toString());
assertEquals("abc", StringUtils.defaultIfEmpty(CharBuffer.wrap("abc"),
CharBuffer.wrap("NULL")).toString());
@@ -1474,6 +1505,16 @@ public class StringUtilsTest extends Tes
assertEquals("abc", s.toString());
}
+ public void testDefaultIfBlank_CharBuffers() {
+ assertEquals("NULL", StringUtils.defaultIfBlank(CharBuffer.wrap(""),
CharBuffer.wrap("NULL")).toString());
+ assertEquals("NULL", StringUtils.defaultIfBlank(CharBuffer.wrap(" "),
CharBuffer.wrap("NULL")).toString());
+ assertEquals("abc", StringUtils.defaultIfBlank(CharBuffer.wrap("abc"),
CharBuffer.wrap("NULL")).toString());
+ assertNull(StringUtils.defaultIfBlank(CharBuffer.wrap(""), null));
+ // Tests compatibility for the API return type
+ CharBuffer s = StringUtils.defaultIfBlank(CharBuffer.wrap("abc"),
CharBuffer.wrap("NULL"));
+ assertEquals("abc", s.toString());
+ }
+
//-----------------------------------------------------------------------
public void testAbbreviate_StringInt() {
assertEquals(null, StringUtils.abbreviate(null, 10));