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);