Updated Branches: refs/heads/camel-2.11.x f01b416fd -> c67a30b52 refs/heads/camel-2.12.x da00bb6f1 -> 573a3028a refs/heads/master 38a4ed8b7 -> fc3c56263
CAMEL-6953: contains predicate should deal with StringBuilder/StringBuffer types, if checking with String types Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fc3c5626 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fc3c5626 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fc3c5626 Branch: refs/heads/master Commit: fc3c562637e4d5fad60c0a281c5821baedcce2e8 Parents: 38a4ed8 Author: Claus Ibsen <[email protected]> Authored: Mon Nov 11 15:55:45 2013 +0100 Committer: Claus Ibsen <[email protected]> Committed: Mon Nov 11 15:55:45 2013 +0100 ---------------------------------------------------------------------- .../org/apache/camel/util/ObjectHelper.java | 8 ++++++ .../org/apache/camel/util/ObjectHelperTest.java | 26 ++++++++++++++++++++ 2 files changed, 34 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fc3c5626/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java index d6b9a3e..2b0827a 100644 --- a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java +++ b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java @@ -455,6 +455,14 @@ public final class ObjectHelper { * Returns true if the collection contains the specified value */ public static boolean contains(Object collectionOrArray, Object value) { + // favor String types + if (collectionOrArray != null && (collectionOrArray instanceof StringBuffer || collectionOrArray instanceof StringBuilder)) { + collectionOrArray = collectionOrArray.toString(); + } + if (value != null && (value instanceof StringBuffer || value instanceof StringBuilder)) { + value = value.toString(); + } + if (collectionOrArray instanceof Collection) { Collection<?> collection = (Collection<?>)collectionOrArray; return collection.contains(value); http://git-wip-us.apache.org/repos/asf/camel/blob/fc3c5626/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java b/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java index 106c42c..315f866 100644 --- a/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java +++ b/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java @@ -93,6 +93,32 @@ public class ObjectHelperTest extends TestCase { assertFalse(ObjectHelper.contains("foo", "xyz")); } + public void testContainsStringBuilder() throws Exception { + StringBuilder sb = new StringBuilder(); + sb.append("Hello World"); + + assertTrue(ObjectHelper.contains(sb, "World")); + assertTrue(ObjectHelper.contains(sb, new StringBuffer("World"))); + assertTrue(ObjectHelper.contains(sb, new StringBuilder("World"))); + + assertFalse(ObjectHelper.contains(sb, "Camel")); + assertFalse(ObjectHelper.contains(sb, new StringBuffer("Camel"))); + assertFalse(ObjectHelper.contains(sb, new StringBuilder("Camel"))); + } + + public void testContainsStringBuffer() throws Exception { + StringBuffer sb = new StringBuffer(); + sb.append("Hello World"); + + assertTrue(ObjectHelper.contains(sb, "World")); + assertTrue(ObjectHelper.contains(sb, new StringBuffer("World"))); + assertTrue(ObjectHelper.contains(sb, new StringBuilder("World"))); + + assertFalse(ObjectHelper.contains(sb, "Camel")); + assertFalse(ObjectHelper.contains(sb, new StringBuffer("Camel"))); + assertFalse(ObjectHelper.contains(sb, new StringBuilder("Camel"))); + } + public void testEqual() { assertTrue(ObjectHelper.equal(null, null)); assertTrue(ObjectHelper.equal("", ""));
