1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.rblasch.convert.converters.primitives;
17
18 import org.rblasch.convert.ConversionFailedException;
19 import org.rblasch.convert.converters.AbstractClassConverter;
20
21 /***
22 * @author Ronald Blaschke
23 */
24 public class StringToBooleanConverter extends AbstractClassConverter {
25 public Class getSourceClass() {
26 return String.class;
27 }
28
29 public Class getDestinationClass() {
30 return Boolean.class;
31 }
32
33 public int getWeight() {
34 return 100;
35 }
36
37 private static boolean isTrue(final String s) {
38 return "true".equalsIgnoreCase(s)
39 || "1".equalsIgnoreCase(s);
40 }
41
42 private static boolean isFalse(final String s) {
43 return "false".equalsIgnoreCase(s)
44 || "0".equalsIgnoreCase(s);
45 }
46
47 public Object convert(final Object obj) throws Exception {
48 final String s = ((String) obj).trim();
49 if (isTrue(s)) {
50 return Boolean.TRUE;
51 } else if (isFalse(s)) {
52 return Boolean.FALSE;
53 } else {
54 throw new ConversionFailedException("Can't convert '" + obj + "' to boolean");
55 }
56 }
57 }