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
----------------------------------------------------------------------