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 }