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());
+ }
+ }
+
}