1
2
3
4
5
6
7
8
9
10 package org.mule.module.json.config;
11
12 import org.codehaus.jackson.map.ObjectMapper;
13 import org.springframework.beans.factory.config.AbstractFactoryBean;
14
15 import java.util.Map;
16
17
18
19
20 public class MapperFactoryBean extends AbstractFactoryBean<ObjectMapper>
21 {
22 private String name;
23 private Map<Class<?>, Class<?>> mixins;
24
25 @Override
26 public Class<?> getObjectType()
27 {
28 return ObjectMapper.class;
29 }
30
31 @Override
32 protected ObjectMapper createInstance() throws Exception
33 {
34 ObjectMapper mapper = new ObjectMapper();
35 if(mixins!=null)
36 {
37 for (Map.Entry<Class<?>, Class<?>> entry : mixins.entrySet())
38 {
39 mapper.getSerializationConfig().addMixInAnnotations(entry.getKey(), entry.getValue());
40 mapper.getDeserializationConfig().addMixInAnnotations(entry.getKey(), entry.getValue());
41 }
42 }
43 return mapper;
44 }
45
46 public Map<Class<?>, Class<?>> getMixins()
47 {
48 return mixins;
49 }
50
51 public void setMixins(Map<Class<?>, Class<?>> mixins)
52 {
53 this.mixins = mixins;
54 }
55
56 public String getName()
57 {
58 return name;
59 }
60
61 public void setName(String name)
62 {
63 this.name = name;
64 }
65 }