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