blob: de13574def8d7f88d415c2a410a0b6d79a4f6b81 [file] [log] [blame]
Jonathan Hart23701d12014-04-03 10:45:48 -07001package net.onrc.onos.core.util.serializers;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -08002
3import java.io.IOException;
4
Jonathan Hart23701d12014-04-03 10:45:48 -07005import net.onrc.onos.core.util.FlowEntryId;
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/**
16 * Deserialize a Flow Entry ID from a string.
17 */
18public class FlowEntryIdDeserializer extends JsonDeserializer<FlowEntryId> {
19
Yuta HIGUCHI6ac8d182013-10-22 15:24:56 -070020 protected final static Logger log = LoggerFactory.getLogger(FlowEntryIdDeserializer.class);
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080021
22 @Override
23 public FlowEntryId deserialize(JsonParser jp,
Ray Milkey269ffb92014-04-03 14:43:30 -070024 DeserializationContext ctxt)
25 throws IOException, JsonProcessingException {
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080026
Ray Milkey269ffb92014-04-03 14:43:30 -070027 FlowEntryId flowEntryId = null;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080028
Ray Milkey269ffb92014-04-03 14:43:30 -070029 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 flowEntryId = new FlowEntryId(value);
36 }
37 }
38 return flowEntryId;
Pavlin Radoslavov7c153612013-02-25 19:46:08 -080039 }
40}