blob: ff3a0ee6747f0cdd4deff70b831f2940f6ec5e96 [file] [log] [blame]
HIGUCHI Yutaf086d8a2013-06-12 15:26:35 -07001package net.onrc.onos.ofcontroller.util.serializers;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -08002
3import java.io.IOException;
4
5import org.codehaus.jackson.JsonNode;
6import org.codehaus.jackson.JsonParser;
7import org.codehaus.jackson.JsonToken;
8import org.codehaus.jackson.JsonProcessingException;
9import org.codehaus.jackson.ObjectCodec;
10import org.codehaus.jackson.map.JsonDeserializer;
11import org.codehaus.jackson.map.DeserializationContext;
12
HIGUCHI Yuta356086e2013-06-12 15:21:19 -070013import net.onrc.onos.ofcontroller.util.IPv6Net;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080014
15import org.slf4j.Logger;
16import org.slf4j.LoggerFactory;
17
18/**
Pavlin Radoslavovede97582013-03-08 18:57:28 -080019 * Deserialize an IPv6Net address from a string.
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080020 */
21public class IPv6NetDeserializer extends JsonDeserializer<IPv6Net> {
22
23 protected static Logger log = LoggerFactory.getLogger(IPv6NetDeserializer.class);
24
25 @Override
26 public IPv6Net deserialize(JsonParser jp,
27 DeserializationContext ctxt)
28 throws IOException, JsonProcessingException {
29
30 IPv6Net ipv6Net = null;
31
32 jp.nextToken(); // Move to JsonToken.START_OBJECT
33 while (jp.nextToken() != JsonToken.END_OBJECT) {
34 String fieldname = jp.getCurrentName();
35 if ("value".equals(fieldname)) {
36 String value = jp.getText();
37 log.debug("Fieldname: " + fieldname + " Value: " + value);
38 ipv6Net = new IPv6Net(value);
39 }
40 }
41 return ipv6Net;
42 }
43}