1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.beanutils.converters;
18
19 /***
20 * {@link org.apache.commons.beanutils.Converter} implementaion that handles conversion
21 * to and from <b>java.lang.Character</b> objects.
22 * <p>
23 * Can be configured to either return a <i>default value</i> or throw a
24 * <code>ConversionException</code> if a conversion error occurs.
25 *
26 * @author Craig R. McClanahan
27 * @version $Revision: 555845 $ $Date: 2007-07-13 03:52:05 +0100 (Fri, 13 Jul 2007) $
28 * @since 1.3
29 */
30 public final class CharacterConverter extends AbstractConverter {
31
32 /***
33 * Construct a <b>java.lang.Character</b> <i>Converter</i> that throws
34 * a <code>ConversionException</code> if an error occurs.
35 */
36 public CharacterConverter() {
37 super(Character.class);
38 }
39
40 /***
41 * Construct a <b>java.lang.Character</b> <i>Converter</i> that returns
42 * a default value if an error occurs.
43 *
44 * @param defaultValue The default value to be returned
45 * if the value to be converted is missing or an error
46 * occurs converting the value.
47 */
48 public CharacterConverter(Object defaultValue) {
49 super(Character.class, defaultValue);
50 }
51
52 /***
53 * <p>Convert a java.lang.Class or object into a String.</p>
54 *
55 * @param value The input value to be converted
56 * @return the converted String value.
57 */
58 protected String convertToString(Object value) {
59 String strValue = value.toString();
60 return strValue.length() == 0 ? "" : strValue.substring(0, 1);
61 }
62
63 /***
64 * <p>Convert the input object into a java.lang.Character.</p>
65 *
66 * @param type Data type to which this value should be converted.
67 * @param value The input value to be converted.
68 * @return The converted value.
69 * @throws Exception if conversion cannot be performed successfully
70 */
71 protected Object convertToType(Class type, Object value) throws Exception {
72 return new Character(value.toString().charAt(0));
73 }
74
75 }