1 package com.buckosoft.PicMan.service.support;
2
3 import java.util.HashSet;
4
5 import com.fasterxml.jackson.databind.BeanDescription;
6 import com.fasterxml.jackson.databind.JsonSerializer;
7 import com.fasterxml.jackson.databind.SerializationConfig;
8 import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
9 import com.fasterxml.jackson.databind.module.SimpleSerializers;
10 import com.fasterxml.jackson.databind.type.MapLikeType;
11 import com.fasterxml.jackson.databind.type.MapType;
12
13 public class MapSerializersExt extends SimpleSerializers {
14
15 private static final long serialVersionUID = 5717783442425589683L;
16
17 @Override
18 public JsonSerializer<?> findMapSerializer(SerializationConfig config,
19 MapType type, BeanDescription beanDesc,
20 JsonSerializer<Object> keySerializer,
21 TypeSerializer elementTypeSerializer,
22 JsonSerializer<Object> elementValueSerializer) {
23 return createMapSerializer(config, type, beanDesc, keySerializer,
24 elementTypeSerializer, elementValueSerializer);
25 }
26
27 @Override
28 public JsonSerializer<?> findMapLikeSerializer(SerializationConfig config,
29 MapLikeType type, BeanDescription beanDesc,
30 JsonSerializer<Object> keySerializer,
31 TypeSerializer elementTypeSerializer,
32 JsonSerializer<Object> elementValueSerializer) {
33 return createMapSerializer(config, type, beanDesc, keySerializer,
34 elementTypeSerializer, elementValueSerializer);
35 }
36
37 public JsonSerializer<?> createMapSerializer(SerializationConfig config,
38 MapLikeType type, BeanDescription beanDesc,
39 JsonSerializer<Object> keySerializer,
40 TypeSerializer elementTypeSerializer,
41 JsonSerializer<Object> elementValueSerializer) {
42 TypeSerializer keyTypeSerializer = JsonUtils.createTypeSerializer(
43 config, type.getKeyType());
44 return new KeyValueMapSerializer(new HashSet<String>(),
45 type.getKeyType(), type.getContentType(), false,
46 elementTypeSerializer, keyTypeSerializer, keySerializer,
47 elementValueSerializer);
48 }
49
50 }