You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bv...@apache.org on 2012/02/26 14:00:41 UTC

svn commit: r1293828 - /camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java

Author: bvahdat
Date: Sun Feb 26 13:00:41 2012
New Revision: 1293828

URL: http://svn.apache.org/viewvc?rev=1293828&view=rev
Log:
CAMEL-4959: Did "Refactor to Method" for the case if the to be converted value is NaN. Although did tiny cleanup by the other converter methods.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java?rev=1293828&r1=1293827&r2=1293828&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java Sun Feb 26 13:00:41 2012
@@ -80,9 +80,9 @@ public final class ObjectConverter {
         if (value instanceof Byte) {
             return (Byte) value;
         } else if (value instanceof Number) {
-            if (value.equals(Float.NaN) || value.equals(Double.NaN)) {
+            if (isNaN(value)) {
                 // return zero for a NaN value
-                return Byte.valueOf("0");
+                return Byte.valueOf((byte) 0);
             }
             Number number = (Number) value;
             return number.byteValue();
@@ -100,11 +100,11 @@ public final class ObjectConverter {
 
     @Converter
     public static char toChar(String value) {
-        // must be 1 length string
+        // must be string with the length of 1
         if (value == null || value.length() != 1) {
             throw new IllegalArgumentException("String must have exactly a length of 1: " + value);
         }
-        return value.toCharArray()[0];
+        return value.charAt(0);
     }
 
     @Converter
@@ -139,9 +139,9 @@ public final class ObjectConverter {
         if (value instanceof Short) {
             return (Short) value;
         } else if (value instanceof Number) {
-            if (value.equals(Float.NaN) || value.equals(Double.NaN)) {
+            if (isNaN(value)) {
                 // return zero for a NaN value
-                return Short.valueOf("0");
+                return Short.valueOf((short) 0);
             }
             Number number = (Number) value;
             return number.shortValue();
@@ -160,7 +160,7 @@ public final class ObjectConverter {
         if (value instanceof Integer) {
             return (Integer) value;
         } else if (value instanceof Number) {
-            if (value.equals(Float.NaN) || value.equals(Double.NaN)) {
+            if (isNaN(value)) {
                 // return zero for a NaN value
                 return Integer.valueOf(0);
             }
@@ -181,7 +181,7 @@ public final class ObjectConverter {
         if (value instanceof Long) {
             return (Long) value;
         } else if (value instanceof Number) {
-            if (value.equals(Float.NaN) || value.equals(Double.NaN)) {
+            if (isNaN(value)) {
                 // return zero for a NaN value
                 return Long.valueOf(0);
             }
@@ -202,7 +202,7 @@ public final class ObjectConverter {
         if (value instanceof Float) {
             return (Float) value;
         } else if (value instanceof Number) {
-            if (value.equals(Double.NaN) || value.equals(Float.NaN)) {
+            if (isNaN(value)) {
                 return Float.NaN;
             }
             Number number = (Number) value;
@@ -222,7 +222,7 @@ public final class ObjectConverter {
         if (value instanceof Double) {
             return (Double) value;
         } else if (value instanceof Number) {
-            if (value.equals(Double.NaN) || value.equals(Float.NaN)) {
+            if (isNaN(value)) {
                 return Double.NaN;
             }
             Number number = (Number) value;
@@ -234,6 +234,11 @@ public final class ObjectConverter {
         }
     }
 
+    private static boolean isNaN(Object value) {
+        // 'value' should have been already checked to be 'instanceof Number', that's 'value != null'
+        return value.equals(Float.NaN) || value.equals(Double.NaN);
+    }
+
     // add fast type converters from most common used
 
     @Converter
@@ -283,7 +288,7 @@ public final class ObjectConverter {
 
     @Converter
     public static Boolean toBoolean(String value) {
-        return "true".equalsIgnoreCase(value.toString()) ? Boolean.TRUE : Boolean.FALSE;
+        return Boolean.parseBoolean(value);
     }
 
 }