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