View Javadoc
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  }