blob: daf90afdc433cb2543843472031d1ed46a8c7c6c [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
HIGUCHI Yuta356086e2013-06-12 15:21:19 -07005import net.onrc.onos.ofcontroller.util.IPv4;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -08006
HIGUCHI Yuta858c1ea2013-06-14 13:10:06 -07007import org.codehaus.jackson.JsonParser;
8import org.codehaus.jackson.JsonProcessingException;
9import org.codehaus.jackson.JsonToken;
10import org.codehaus.jackson.map.DeserializationContext;
11import org.codehaus.jackson.map.JsonDeserializer;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080012import org.slf4j.Logger;
13import org.slf4j.LoggerFactory;
14
15/**
Pavlin Radoslavovede97582013-03-08 18:57:28 -080016 * Deserialize an IPv4 address from a string.
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080017 */
18public class IPv4Deserializer extends JsonDeserializer<IPv4> {
19
20 protected static Logger log = LoggerFactory.getLogger(IPv4Deserializer.class);
21
22 @Override
23 public IPv4 deserialize(JsonParser jp,
24 DeserializationContext ctxt)
25 throws IOException, JsonProcessingException {
26
27 IPv4 ipv4 = null;
28
29 jp.nextToken(); // Move to JsonToken.START_OBJECT
30 while (jp.nextToken() != JsonToken.END_OBJECT) {
31 String fieldname = jp.getCurrentName();
32 if ("value".equals(fieldname)) {
33 String value = jp.getText();
34 log.debug("Fieldname: " + fieldname + " Value: " + value);
35 ipv4 = new IPv4(value);
36 }
37 }
38 return ipv4;
39 }
40}