Skip to content

Commit bd8cce5

Browse files
committed
Cleanup of the default mapper registration
1 parent 07cee57 commit bd8cce5

File tree

1 file changed

+82
-54
lines changed

1 file changed

+82
-54
lines changed

src/main/java/org/javawebstack/abstractdata/mapper/DefaultMappers.java

Lines changed: 82 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)