1
2
3
4
5
6
7
8
9
10
11
12
13
14 package com.addthis.codec.jackson;
15
16 import com.fasterxml.jackson.databind.BeanDescription;
17 import com.fasterxml.jackson.databind.DeserializationConfig;
18 import com.fasterxml.jackson.databind.JsonDeserializer;
19 import com.fasterxml.jackson.databind.JsonMappingException;
20 import com.fasterxml.jackson.databind.deser.Deserializers;
21 import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
22 import com.fasterxml.jackson.databind.type.ArrayType;
23
24 public class CodecDeserializers extends Deserializers.Base {
25
26 @Override
27 public JsonDeserializer<?> findArrayDeserializer(ArrayType type,
28 DeserializationConfig config,
29 BeanDescription beanDesc,
30 TypeDeserializer elementTypeDeserializer,
31 JsonDeserializer<?> elementDeserializer)
32 throws JsonMappingException {
33
34 if (elementDeserializer == null) {
35 Class<?> raw = type.getContentType().getRawClass();
36 if (type.getContentType().isPrimitive()) {
37 return null;
38 } else if (raw == String.class) {
39 return null;
40 }
41 }
42 return new IndexReportingObjectArrayDeserializer(type,
43 (JsonDeserializer<Object>) elementDeserializer,
44 elementTypeDeserializer);
45 }
46 }