You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by br...@apache.org on 2015/05/07 21:30:27 UTC
[1/4] [lang] DOC: StringUtils.containsAny. ADD: containsAllWords to
WordUtils
Repository: commons-lang
Updated Branches:
refs/heads/master dee94449e -> 9604c8530
DOC: StringUtils.containsAny. ADD: containsAllWords to WordUtils
Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/54facb4f
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/54facb4f
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/54facb4f
Branch: refs/heads/master
Commit: 54facb4fd93c2ff59b3096c6e64b9be1b3c9cd88
Parents: 1cb5573
Author: Eduardo Martins <ed...@luizalabs.com>
Authored: Tue May 5 15:32:46 2015 -0300
Committer: Eduardo Martins <ed...@luizalabs.com>
Committed: Tue May 5 16:34:48 2015 -0300
----------------------------------------------------------------------
.../org/apache/commons/lang3/StringUtils.java | 2 +-
.../apache/commons/lang3/text/WordUtils.java | 39 ++++++++++++++++++++
.../commons/lang3/text/WordUtilsTest.java | 19 ++++++++++
3 files changed, 59 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/54facb4f/src/main/java/org/apache/commons/lang3/StringUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/StringUtils.java b/src/main/java/org/apache/commons/lang3/StringUtils.java
index 279c472..aa7b23e 100644
--- a/src/main/java/org/apache/commons/lang3/StringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringUtils.java
@@ -1685,7 +1685,7 @@ public class StringUtils {
* StringUtils.containsAny("", *) = false
* StringUtils.containsAny(*, null) = false
* StringUtils.containsAny(*, []) = false
- * StringUtils.containsAny("abcd", "ab", "cd") = false
+ * StringUtils.containsAny("abcd", "ab", "cd") = true
* StringUtils.containsAny("abc", "d", "abc") = true
* </pre>
*
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/54facb4f/src/main/java/org/apache/commons/lang3/text/WordUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/text/WordUtils.java b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
index ce21d92..b38cb0f 100644
--- a/src/main/java/org/apache/commons/lang3/text/WordUtils.java
+++ b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
@@ -16,9 +16,12 @@
*/
package org.apache.commons.lang3.text;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemUtils;
+import java.util.regex.Pattern;
+
/**
* <p>Operations on Strings that contain words.</p>
*
@@ -562,6 +565,42 @@ public class WordUtils {
return new String(buf, 0, count);
}
+ /**
+ * <p>Checks if the String contains all words in the given array.</p>
+ *
+ * <p>
+ * A {@code null} String will return {@code false}. A {@code null, zero
+ * length search array or if one element of array is null will return {@code false}.
+ * </p>
+ *
+ * <pre>
+ * WordUtils.containsAllWords(null, *) = false
+ * WordUtils.containsAllWords("", *) = false
+ * WordUtils.containsAllWords(*, null) = false
+ * WordUtils.containsAllWords(*, []) = false
+ * WordUtils.containsAllWords("abcd", "ab", "cd") = false
+ * WordUtils.containsAllWords("abc def", "def", "abc") = true
+ * </pre>
+ *
+ *
+ * @param str The str to check, may be null
+ * @param words The array of String words to search for, may be null
+ * @return {@code true} if all search words are found, {@code false} otherwise
+ */
+ public static boolean containsAllWords(String word, String... words) {
+ if (StringUtils.isEmpty(word) || ArrayUtils.isEmpty(words)
+ || (words.length == 1 && StringUtils.isBlank(words[0]))) {
+ return false;
+ }
+ for (String w : words) {
+ Pattern p = Pattern.compile(".*\\b" + w + "\\b.*");
+ if (!p.matcher(word).matches()) {
+ return false;
+ }
+ }
+ return true;
+ }
+
//-----------------------------------------------------------------------
/**
* Is the character a delimiter.
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/54facb4f/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
index 6be8ded..f905a52 100644
--- a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
@@ -222,6 +222,25 @@ public class WordUtilsTest {
}
@Test
+ public void testContainsAllWords_StringString() {
+ assertFalse(WordUtils.containsAllWords(null, (String) null));
+ assertFalse(WordUtils.containsAllWords(null, ""));
+ assertFalse(WordUtils.containsAllWords(null, "ab"));
+
+ assertFalse(WordUtils.containsAllWords("", (String) null));
+ assertFalse(WordUtils.containsAllWords("", ""));
+ assertFalse(WordUtils.containsAllWords("", "ab"));
+
+ assertFalse(WordUtils.containsAllWords("foo", (String) null));
+ assertFalse(WordUtils.containsAllWords("bar", ""));
+ assertFalse(WordUtils.containsAllWords("zzabyycdxx", "by"));
+ assertTrue(WordUtils.containsAllWords("lorem ipsum dolor sit amet", "ipsum", "lorem", "dolor"));
+ assertFalse(WordUtils.containsAllWords("lorem ipsum dolor sit amet", "ipsum", null, "lorem", "dolor"));
+ assertFalse(WordUtils.containsAllWords("ab", "b"));
+ assertFalse(WordUtils.containsAllWords("ab", "z"));
+ }
+
+ @Test
public void testUncapitalize_String() {
assertEquals(null, WordUtils.uncapitalize(null));
assertEquals("", WordUtils.uncapitalize(""));
[2/4] [lang] Always return false to contains a null word
Posted by br...@apache.org.
Always return false to contains a null word
Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/633ce604
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/633ce604
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/633ce604
Branch: refs/heads/master
Commit: 633ce604968078151e03363d5c67042af74310e3
Parents: 54facb4
Author: Eduardo Martins <ed...@luizalabs.com>
Authored: Thu May 7 14:17:28 2015 -0300
Committer: Eduardo Martins <ed...@luizalabs.com>
Committed: Thu May 7 14:17:28 2015 -0300
----------------------------------------------------------------------
.../java/org/apache/commons/lang3/text/WordUtils.java | 11 +++++++----
.../org/apache/commons/lang3/text/WordUtilsTest.java | 1 +
2 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/633ce604/src/main/java/org/apache/commons/lang3/text/WordUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/lang3/text/WordUtils.java b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
index b38cb0f..c619312 100644
--- a/src/main/java/org/apache/commons/lang3/text/WordUtils.java
+++ b/src/main/java/org/apache/commons/lang3/text/WordUtils.java
@@ -565,6 +565,7 @@ public class WordUtils {
return new String(buf, 0, count);
}
+ //-----------------------------------------------------------------------
/**
* <p>Checks if the String contains all words in the given array.</p>
*
@@ -587,12 +588,14 @@ public class WordUtils {
* @param words The array of String words to search for, may be null
* @return {@code true} if all search words are found, {@code false} otherwise
*/
- public static boolean containsAllWords(String word, String... words) {
- if (StringUtils.isEmpty(word) || ArrayUtils.isEmpty(words)
- || (words.length == 1 && StringUtils.isBlank(words[0]))) {
+ public static boolean containsAllWords(CharSequence word, CharSequence... words) {
+ if (StringUtils.isEmpty(word) || ArrayUtils.isEmpty(words)) {
return false;
}
- for (String w : words) {
+ for (CharSequence w : words) {
+ if (StringUtils.isBlank(w)) {
+ return false;
+ }
Pattern p = Pattern.compile(".*\\b" + w + "\\b.*");
if (!p.matcher(word).matches()) {
return false;
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/633ce604/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
index f905a52..92d6971 100644
--- a/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
@@ -236,6 +236,7 @@ public class WordUtilsTest {
assertFalse(WordUtils.containsAllWords("zzabyycdxx", "by"));
assertTrue(WordUtils.containsAllWords("lorem ipsum dolor sit amet", "ipsum", "lorem", "dolor"));
assertFalse(WordUtils.containsAllWords("lorem ipsum dolor sit amet", "ipsum", null, "lorem", "dolor"));
+ assertFalse(WordUtils.containsAllWords("lorem ipsum null dolor sit amet", "ipsum", null, "lorem", "dolor"));
assertFalse(WordUtils.containsAllWords("ab", "b"));
assertFalse(WordUtils.containsAllWords("ab", "z"));
}
[3/4] [lang] Add LANG-1135 to changes.xml
Posted by br...@apache.org.
Add LANG-1135 to changes.xml
Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/1182950a
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/1182950a
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/1182950a
Branch: refs/heads/master
Commit: 1182950a8860efcb59e2fc09f89ab7c0400c45ba
Parents: 633ce60
Author: Benedikt Ritter <br...@apache.org>
Authored: Thu May 7 21:26:59 2015 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Thu May 7 21:26:59 2015 +0200
----------------------------------------------------------------------
src/changes/changes.xml | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/1182950a/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f151745..73c50fc 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,6 +22,7 @@
<body>
<release version="3.5" date="tba" description="tba">
+ <action issue="LANG-1135" type="add" dev="britter" due-to="Eduardo Martins">Add method containsAllWords to WordUtils</action>
<action issue="LANG-1105" type="add" dev="britter" due-to="Hendrik Saly">Add ThreadUtils - A utility class which provides helper methods related to java.lang.Thread</action>
<action issue="LANG-1031" type="add" dev="britter" due-to="Felipe Adorno">Add annotations to exclude fields from ReflectionEqualsBuilder, ReflectionToStringBuilder and ReflectionHashCodeBuilder</action>
<action issue="LANG-1127" type="add" dev="chas">Unit test helpers which set and reset default Locale and TimeZone</action>
[4/4] [lang] Merge branch 'LANG-1135'
Posted by br...@apache.org.
Merge branch 'LANG-1135'
LANG-1135: Add method containsAllWords to WordUtils. Thanks to Eduardo Martins.
Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-lang/commit/9604c853
Tree: http://git-wip-us.apache.org/repos/asf/commons-lang/tree/9604c853
Diff: http://git-wip-us.apache.org/repos/asf/commons-lang/diff/9604c853
Branch: refs/heads/master
Commit: 9604c853069562e8c4219ae27eaa4b2bad59eabc
Parents: dee9444 1182950
Author: Benedikt Ritter <br...@apache.org>
Authored: Thu May 7 21:28:25 2015 +0200
Committer: Benedikt Ritter <br...@apache.org>
Committed: Thu May 7 21:28:25 2015 +0200
----------------------------------------------------------------------
src/changes/changes.xml | 1 +
.../org/apache/commons/lang3/StringUtils.java | 2 +-
.../apache/commons/lang3/text/WordUtils.java | 42 ++++++++++++++++++++
.../commons/lang3/text/WordUtilsTest.java | 20 ++++++++++
4 files changed, 64 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/9604c853/src/changes/changes.xml
----------------------------------------------------------------------
diff --cc src/changes/changes.xml
index 6268c85,73c50fc..4b694b8
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@@ -22,11 -22,7 +22,12 @@@
<body>
<release version="3.5" date="tba" description="tba">
+ <action issue="LANG-1135" type="add" dev="britter" due-to="Eduardo Martins">Add method containsAllWords to WordUtils</action>
+ <action issue="LANG-1132" type="add" dev="britter" due-to="Jack Tan">ReflectionToStringBuilder doesn't throw IllegalArgumentException when the constructor's object param is null</action>
+ <action issue="LANG-1122" type="fix" dev="britter" due-to="Adrian Ber">Inconsistent behavior of swap for malformed inputs</action>
+ <action issue="LANG-701" type="add" dev="britter" due-to="James Sawle">StringUtils join with var args</action>
+ <action issue="LANG-1130" type="fix" dev="britter">Fix critical issues reported by SonarQube</action>
+ <action issue="LANG-1131" type="fix" dev="britter">StrBuilder.equals(StrBuilder) doesn't check for null inputs</action>
<action issue="LANG-1105" type="add" dev="britter" due-to="Hendrik Saly">Add ThreadUtils - A utility class which provides helper methods related to java.lang.Thread</action>
<action issue="LANG-1031" type="add" dev="britter" due-to="Felipe Adorno">Add annotations to exclude fields from ReflectionEqualsBuilder, ReflectionToStringBuilder and ReflectionHashCodeBuilder</action>
<action issue="LANG-1127" type="add" dev="chas">Unit test helpers which set and reset default Locale and TimeZone</action>
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/9604c853/src/main/java/org/apache/commons/lang3/StringUtils.java
----------------------------------------------------------------------
diff --cc src/main/java/org/apache/commons/lang3/StringUtils.java
index 726ecc0,aa7b23e..29d7098
--- a/src/main/java/org/apache/commons/lang3/StringUtils.java
+++ b/src/main/java/org/apache/commons/lang3/StringUtils.java
@@@ -1685,8 -1685,7 +1685,8 @@@ public class StringUtils
* StringUtils.containsAny("", *) = false
* StringUtils.containsAny(*, null) = false
* StringUtils.containsAny(*, []) = false
- * StringUtils.containsAny("abcd", "ab", "cd") = false
+ * StringUtils.containsAny("abcd", "ab", null) = false
+ * StringUtils.containsAny("abcd", "ab", "cd") = true
* StringUtils.containsAny("abc", "d", "abc") = true
* </pre>
*
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/9604c853/src/main/java/org/apache/commons/lang3/text/WordUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-lang/blob/9604c853/src/test/java/org/apache/commons/lang3/text/WordUtilsTest.java
----------------------------------------------------------------------