1 package org.onap.ccsdk.features.sdnr.wt.yang.mapper.mapperextensions;
3 import java.io.IOException;
4 import java.util.ArrayList;
7 import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapper;
8 import org.onap.ccsdk.features.sdnr.wt.yang.mapper.YangToolsMapperHelper;
9 import org.opendaylight.yangtools.yang.binding.Identifiable;
10 import org.opendaylight.yangtools.yang.binding.Identifier;
11 import com.fasterxml.jackson.core.JsonParser;
12 import com.fasterxml.jackson.core.JsonProcessingException;
13 import com.fasterxml.jackson.core.ObjectCodec;
14 import com.fasterxml.jackson.core.TreeNode;
15 import com.fasterxml.jackson.databind.BeanDescription;
16 import com.fasterxml.jackson.databind.DeserializationContext;
17 import com.fasterxml.jackson.databind.JsonDeserializer;
18 import com.fasterxml.jackson.databind.JsonNode;
19 import com.fasterxml.jackson.databind.node.ArrayNode;
20 import com.fasterxml.jackson.databind.type.CollectionLikeType;
21 import com.fasterxml.jackson.databind.type.TypeFactory;
22 import com.google.common.collect.Maps;
24 public class YangtoolsMapDesirializer<K extends Identifier<V>, V extends Identifiable<K>>
25 extends JsonDeserializer<Map<K, V>> {
27 private final Class<V> clazz;
28 private final YangToolsMapper mapper;
30 public YangtoolsMapDesirializer(Class<V> clazz) {
33 this.mapper = new YangToolsMapper();
37 public Map<K, V> deserialize(JsonParser p, DeserializationContext ctxt)
38 throws IOException, JsonProcessingException {
39 CollectionLikeType type = ctxt.getTypeFactory().constructCollectionType(List.class, clazz);
40 List<V> list = mapper.readValue(p,type);
41 return YangToolsMapperHelper.toMap(list);