@@ -26,60 +26,16 @@ public final class DefaultMappers {
2626 public static Map <Class <?>, MapperTypeAdapter > create () {
2727 Map <Class <?>, MapperTypeAdapter > map = new HashMap <>();
2828
29- // Abstract
30- map .put (AbstractElement .class , ABSTRACT );
31- map .put (AbstractNull .class , ABSTRACT );
32- map .put (AbstractPrimitive .class , ABSTRACT );
33- map .put (AbstractObject .class , ABSTRACT );
34- map .put (AbstractArray .class , ABSTRACT );
35-
36- // Primitives
37- map .put (String .class , PRIMITIVE );
38- map .put (Integer .class , PRIMITIVE );
39- map .put (int .class , PRIMITIVE );
40- map .put (Long .class , PRIMITIVE );
41- map .put (long .class , PRIMITIVE );
42- map .put (Short .class , PRIMITIVE );
43- map .put (short .class , PRIMITIVE );
44- map .put (Float .class , PRIMITIVE );
45- map .put (float .class , PRIMITIVE );
46- map .put (Double .class , PRIMITIVE );
47- map .put (double .class , PRIMITIVE );
48- map .put (Boolean .class , PRIMITIVE );
49- map .put (boolean .class , PRIMITIVE );
50- map .put (Number .class , PRIMITIVE );
51- map .put (Map .class , MAP );
52- map .put (HashMap .class , MAP );
53- map .put (LinkedHashMap .class , MAP );
54- map .put (IdentityHashMap .class , MAP );
55- map .put (Hashtable .class , MAP );
56- map .put (Properties .class , MAP );
57- map .put (TreeMap .class , MAP );
58- map .put (EnumMap .class , MAP );
59- map .put (ConcurrentHashMap .class , MAP );
60- map .put (ConcurrentSkipListMap .class , MAP );
61- map .put (WeakHashMap .class , MAP );
62- map .put (AbstractMap .class , MAP );
63-
64- // Collections
65- map .put (List .class , COLLECTION );
66- map .put (ArrayList .class , COLLECTION );
67- map .put (CopyOnWriteArrayList .class , COLLECTION );
68- map .put (LinkedList .class , COLLECTION );
69- map .put (AbstractList .class , COLLECTION );
70- map .put (Set .class , COLLECTION );
71- map .put (HashSet .class , COLLECTION );
72- map .put (EnumSet .class , COLLECTION );
73- map .put (TreeSet .class , COLLECTION );
74- map .put (LinkedHashSet .class , COLLECTION );
75- map .put (CopyOnWriteArraySet .class , COLLECTION );
76- map .put (AbstractSet .class , COLLECTION );
77- map .put (ConcurrentSkipListSet .class , COLLECTION );
78-
79- // Date
80- map .put (Date .class , DATE );
81- map .put (Timestamp .class , DATE );
82- map .put (java .sql .Date .class , DATE );
29+ for (MapperTypeAdapter adapter : new MapperTypeAdapter [] {
30+ ABSTRACT ,
31+ PRIMITIVE ,
32+ COLLECTION ,
33+ MAP ,
34+ DATE
35+ }) {
36+ for (Class <?> type : adapter .getSupportedTypes ())
37+ map .put (type , adapter );
38+ }
8339
8440 return map ;
8541 }
@@ -129,6 +85,25 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
12985 throw new MapperWrongTypeException (context .getField ().getName (), "primitive" , Helpers .typeName (element ));
13086 }
13187
88+ public Class <?>[] getSupportedTypes () {
89+ return new Class [] {
90+ String .class ,
91+ Integer .class ,
92+ int .class ,
93+ Long .class ,
94+ long .class ,
95+ Short .class ,
96+ short .class ,
97+ Float .class ,
98+ float .class ,
99+ Double .class ,
100+ double .class ,
101+ Boolean .class ,
102+ boolean .class ,
103+ Number .class
104+ };
105+ }
106+
132107 }
133108
134109 public static final class CollectionMapper implements MapperTypeAdapter {
@@ -168,6 +143,24 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
168143 }
169144 }
170145
146+ public Class <?>[] getSupportedTypes () {
147+ return new Class [] {
148+ List .class ,
149+ ArrayList .class ,
150+ CopyOnWriteArrayList .class ,
151+ LinkedList .class ,
152+ AbstractList .class ,
153+ Set .class ,
154+ HashSet .class ,
155+ EnumSet .class ,
156+ TreeSet .class ,
157+ LinkedHashSet .class ,
158+ CopyOnWriteArraySet .class ,
159+ AbstractSet .class ,
160+ ConcurrentSkipListSet .class
161+ };
162+ }
163+
171164 }
172165
173166 public static final class MapMapper implements MapperTypeAdapter {
@@ -206,6 +199,23 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
206199 }
207200 }
208201
202+ public Class <?>[] getSupportedTypes () {
203+ return new Class [] {
204+ Map .class ,
205+ HashMap .class ,
206+ LinkedHashMap .class ,
207+ IdentityHashMap .class ,
208+ Hashtable .class ,
209+ Properties .class ,
210+ TreeMap .class ,
211+ EnumMap .class ,
212+ ConcurrentHashMap .class ,
213+ ConcurrentSkipListMap .class ,
214+ WeakHashMap .class ,
215+ AbstractMap .class
216+ };
217+ }
218+
209219 }
210220
211221 public static final class DateMapper implements MapperTypeAdapter {
@@ -234,6 +244,14 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
234244 }
235245 }
236246
247+ public Class <?>[] getSupportedTypes () {
248+ return new Class [] {
249+ Date .class ,
250+ Timestamp .class ,
251+ java .sql .Date .class
252+ };
253+ }
254+
237255 }
238256
239257 public static final class AbstractMapper implements MapperTypeAdapter {
@@ -258,6 +276,16 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
258276 return element ;
259277 }
260278
279+ public Class <?>[] getSupportedTypes () {
280+ return new Class [] {
281+ AbstractElement .class ,
282+ AbstractNull .class ,
283+ AbstractPrimitive .class ,
284+ AbstractArray .class ,
285+ AbstractObject .class
286+ };
287+ }
288+
261289 }
262290
263291 public static class FallbackMapper implements MapperTypeAdapter {
0 commit comments