blob: 6a419eee1e471b96759ab698a090b4f759be14c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.type.CollectionLikeType;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
import org.opendaylight.yangtools.yang.binding.Identifiable;
import org.opendaylight.yangtools.yang.binding.Identifier;
public class YangtoolsMapDesirializer2<K extends Identifier<V>, V extends Identifiable<K>>
extends JsonDeserializer<Map<K, V>> {
private final Class<V> clazz;
private final YangToolsMapper mapper;
public YangtoolsMapDesirializer2(Class<V> clazz) {
super();
this.clazz = clazz;
this.mapper = new YangToolsMapper();
}
@Override
public Map<K, V> deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
CollectionLikeType type = ctxt.getTypeFactory().constructCollectionType(List.class, clazz);
List<V> list = mapper.readValue(p,type);
return YangToolsMapperHelper.toMap(list);
}
}
|