Author: davsclaus
Date: Wed Aug 11 14:26:58 2010
New Revision: 984420

URL: http://svn.apache.org/viewvc?rev=984420&view=rev
Log:
CAMEL-3045: Added String -> char type converter.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/converter/ObjectConverter.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.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=984420&r1=984419&r2=984420&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
 Wed Aug 11 14:26:58 2010
@@ -94,6 +94,15 @@ public final class ObjectConverter {
     }
 
     @Converter
+    public static char toChar(String value) {
+        // must be 1 length string
+        if (value == null || value.length() != 1) {
+            throw new IllegalArgumentException("String must have exactly a 
length of 1: " + value);
+        }
+        return value.toCharArray()[0];
+    }
+
+    @Converter
     public static String fromCharArray(char[] value) {
         return new String(value);
     }

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java?rev=984420&r1=984419&r2=984420&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/converter/ConverterTest.java
 Wed Aug 11 14:26:58 2010
@@ -220,7 +220,6 @@ public class ConverterTest extends TestC
     }
     
     public void testMandatoryConvertTo() {
-        
         CamelContext camel = new DefaultCamelContext();
         Exchange e = new DefaultExchange(camel);
         try {
@@ -229,6 +228,21 @@ public class ConverterTest extends TestC
         } catch (Exception ex) {
             assertTrue("Expect to get a NoTypeConversionAvailableException 
here", ex instanceof NoTypeConversionAvailableException); 
         }
-        
     }
+
+    public void testStringToChar() throws Exception {
+        char ch = converter.convertTo(char.class, "A");
+        assertEquals('A', ch);
+
+        ch = converter.convertTo(char.class, " ");
+        assertEquals(' ', ch);
+
+        try {
+            converter.mandatoryConvertTo(char.class, "ABC");
+            fail("Should have thrown an exception");
+        } catch (NoTypeConversionAvailableException e) {
+            assertEquals("java.lang.IllegalArgumentException: String must have 
exactly a length of 1: ABC", e.getCause().getMessage());
+        }
+    }
+
 }


Reply via email to