This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-2.21.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-2.21.x by this push: new 1345167 CAMEL-12410: Added BigInteger type converter which camel-consul needs. 1345167 is described below commit 13451671ffdcb748aeb708a46b3346521dea726c Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Mar 28 10:59:15 2018 +0200 CAMEL-12410: Added BigInteger type converter which camel-consul needs. --- .../apache/camel/converter/ObjectConverter.java | 22 ++++++++++++++++++++++ .../camel/converter/ObjectConverterTest.java | 12 ++++++++++++ 2 files changed, 34 insertions(+) diff --git a/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java b/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java index c9616fa..dc1117c 100644 --- a/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java +++ b/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java @@ -16,6 +16,7 @@ */ package org.apache.camel.converter; +import java.math.BigInteger; import java.util.Collection; import java.util.Iterator; @@ -198,6 +199,27 @@ public final class ObjectConverter { * Returns the converted value, or null if the value is null */ @Converter + public static BigInteger toBigInteger(Object value) { + Long num = null; + if (value instanceof Long) { + num = (Long) value; + } else if (value instanceof Number) { + Number number = (Number) value; + num = number.longValue(); + } else if (value instanceof String) { + num = Long.valueOf((String) value); + } + if (num != null) { + return BigInteger.valueOf(num); + } else { + return null; + } + } + + /** + * Returns the converted value, or null if the value is null + */ + @Converter public static Float toFloat(Object value) { if (value instanceof Float) { return (Float) value; diff --git a/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java b/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java index 9b911fb..94a7087 100644 --- a/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java +++ b/camel-core/src/test/java/org/apache/camel/converter/ObjectConverterTest.java @@ -16,6 +16,7 @@ */ package org.apache.camel.converter; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; @@ -118,6 +119,17 @@ public class ObjectConverterTest extends TestCase { assertEquals(Double.valueOf("4"), ObjectConverter.toDouble(Double.valueOf("4"))); } + public void testToBigInteger() { + assertEquals(BigInteger.valueOf(4), ObjectConverter.toBigInteger(Long.valueOf("4"))); + assertEquals(BigInteger.valueOf(4), ObjectConverter.toBigInteger(Integer.valueOf("4"))); + assertEquals(BigInteger.valueOf(4), ObjectConverter.toBigInteger("4")); + assertEquals(BigInteger.valueOf(123456789L), ObjectConverter.toBigInteger("123456789")); + assertEquals(null, ObjectConverter.toBigInteger(new Date())); + assertEquals(BigInteger.valueOf(0), ObjectConverter.toBigInteger(Double.NaN)); + assertEquals(BigInteger.valueOf(0), ObjectConverter.toBigInteger(Float.NaN)); + assertEquals(BigInteger.valueOf(4), ObjectConverter.toBigInteger(Long.valueOf("4"))); + } + public void testToString() { assertEquals("ABC", ObjectConverter.toString(new StringBuffer("ABC"))); assertEquals("ABC", ObjectConverter.toString(new StringBuilder("ABC"))); -- To stop receiving notification emails like this one, please contact davscl...@apache.org.