You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2018/03/28 08:59:53 UTC

[camel] branch master updated: CAMEL-12410: Added BigInteger type converter which camel-consul needs.

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 8c40ce3  CAMEL-12410: Added BigInteger type converter which camel-consul needs.
8c40ce3 is described below

commit 8c40ce397bc747457894a99f498b2480c85562d7
Author: Claus Ibsen <cl...@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
davsclaus@apache.org.