Resolved the Serialization and Deserialization issues for MultiValued Columns with...
[ovsdb.git] / library / src / main / java / org / opendaylight / ovsdb / lib / notation / OvsDBMap.java
1 /*
2  * Copyright (C) 2013 EBay Software Foundation
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Authors : Ashwin Raveendran
9  */
10 package org.opendaylight.ovsdb.lib.notation;
11
12 import java.util.Map;
13
14 import org.opendaylight.ovsdb.lib.notation.json.Converter;
15 import org.opendaylight.ovsdb.lib.notation.json.OvsDBMapSerializer;
16
17 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
18 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
19 import com.google.common.collect.ForwardingMap;
20 import com.google.common.collect.Maps;
21
22 @JsonDeserialize(converter = Converter.MapConverter.class)
23 @JsonSerialize(using = OvsDBMapSerializer.class)
24 public class OvsDBMap<K, V> extends ForwardingMap<K, V> {
25
26     Map<K, V> target = Maps.newHashMap();
27
28     public OvsDBMap() {
29         this(Maps.<K,V>newHashMap());
30     }
31
32     public OvsDBMap(Map<K, V> value) {
33         this.target = value;
34     }
35
36     @Override
37     public Map<K, V> delegate() {
38         return target;
39     }
40
41     public static<K,V> OvsDBMap<K,V> fromMap(Map<K, V> value) {
42         return new OvsDBMap<K,V>(value);
43     }
44 }