1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.cubby.converter.impl;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import org.seasar.cubby.converter.Converter;
22
23
24
25
26
27
28 public abstract class AbstractConverter implements Converter {
29
30
31 private static final Map<Class<?>, Class<?>> PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY = new HashMap<Class<?>, Class<?>>();
32 static {
33 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(boolean[].class, Boolean[].class);
34 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(char[].class, Character[].class);
35 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(byte[].class, Byte[].class);
36 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(short[].class, Short[].class);
37 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(int[].class, Integer[].class);
38 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(long[].class, Long[].class);
39 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(float[].class, Float[].class);
40 PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.put(double[].class, Double[].class);
41 }
42
43
44
45
46 public boolean canConvert(final Class<?> parameterType,
47 final Class<?> objectType) {
48 if (getObjectType().isAssignableFrom(objectType)) {
49 return true;
50 }
51 if (PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY.containsKey(objectType)) {
52 final Class<?> wrapperArray = PRIMITIVE_ARRAY_TO_WRAPPER_ARRAY
53 .get(objectType);
54 return canConvert(parameterType, wrapperArray);
55 }
56 return false;
57 }
58
59 }