1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.util.internal;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21
22
23
24
25 public final class ConversionUtil {
26
27
28
29
30 public static int toInt(Object value) {
31 if (value instanceof Number) {
32 return ((Number) value).intValue();
33 } else {
34 return Integer.parseInt(String.valueOf(value));
35 }
36 }
37
38
39
40
41 public static boolean toBoolean(Object value) {
42 if (value instanceof Boolean) {
43 return ((Boolean) value).booleanValue();
44 }
45 if (value instanceof Number) {
46 return ((Number) value).intValue() != 0;
47 } else {
48 String s = String.valueOf(value);
49 if (s.length() == 0) {
50 return false;
51 }
52
53 try {
54 return Integer.parseInt(s) != 0;
55 } catch (NumberFormatException e) {
56
57 }
58
59 switch (Character.toUpperCase(s.charAt(0))) {
60 case 'T': case 'Y':
61 return true;
62 }
63 return false;
64 }
65 }
66
67
68
69
70 public static String[] toStringArray(Object value) {
71 if (value instanceof String[]) {
72 return (String[]) value;
73 }
74
75 if (value instanceof Iterable<?>) {
76 List<String> answer = new ArrayList<String>();
77 for (Object v: (Iterable<?>) value) {
78 if (v == null) {
79 answer.add(null);
80 } else {
81 answer.add(String.valueOf(v));
82 }
83 }
84 return answer.toArray(new String[answer.size()]);
85 }
86
87 return String.valueOf(value).split("[, \\t\\n\\r\\f\\e\\a]");
88 }
89
90 private static final String[] INTEGERS = {
91 "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
92 "10", "11", "12", "13", "14", "15",
93 };
94
95 public static String toString(int value) {
96 if (value >= 0 && value < INTEGERS.length) {
97 return INTEGERS[value];
98 } else {
99 return Integer.toString(value);
100 }
101 }
102
103 private ConversionUtil() {
104
105 }
106 }