Author: bvahdat Date: Sun Feb 26 21:28:27 2012 New Revision: 1293937 URL: http://svn.apache.org/viewvc?rev=1293937&view=rev Log: Merged revisions 1293935 via svnmerge from https://svn.apache.org/repos/asf/camel/branches/camel-2.9.x
................ r1293935 | bvahdat | 2012-02-26 22:06:48 +0100 (So, 26 Feb 2012) | 9 lines Merged revisions 1293828 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk ........ r1293828 | bvahdat | 2012-02-26 14:00:41 +0100 (So, 26 Feb 2012) | 1 line 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/branches/camel-2.8.x/ (props changed) camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Feb 26 21:28:27 2012 @@ -1,2 +1,2 @@ -/camel/branches/camel-2.9.x:1227549,1228229,1229567,1234054,1236672,1238942,1240157,1241006,1241489,1243052,1243058,1244875,1244877,1291871,1292116,1292389,1292726,1292769,1293082 -/camel/trunk:1226860,1227540,1228223,1229565,1234043,1236667,1238937,1240025,1240950,1240967,1241482,1243046,1243057,1244870,1244872,1291848,1292114,1292384,1292725,1292767,1293079 +/camel/branches/camel-2.9.x:1227549,1228229,1229567,1234054,1236672,1238942,1240157,1241006,1241489,1243052,1243058,1244875,1244877,1291871,1292116,1292389,1292726,1292769,1293082,1293935 +/camel/trunk:1226860,1227540,1228223,1229565,1234043,1236667,1238937,1240025,1240950,1240967,1241482,1243046,1243057,1244870,1244872,1291848,1292114,1292384,1292725,1292767,1293079,1293828 Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java?rev=1293937&r1=1293936&r2=1293937&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java Sun Feb 26 21:28:27 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); } }
