package org.opennaas.extensions.opendaylight.vtn.protocol.client.serializers.json.deserialize;
import java.io.IOException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.JsonDeserializer;
import org.opennaas.extensions.opendaylight.vtn.model.Boundary;
import org.opennaas.extensions.opendaylight.vtn.model.Link;
public class BoundaryJSONDeserializer extends JsonDeserializer<Boundary> {
/*
{"boundary":{"boundary_id":"b1","link":{"logical_port2_id":"PP-OF:00:00:00:00:00:00:00:04-s4-eth3","domain2_id":"(DEFAULT)","logical_port1_id":"PP-OF:00:00:00:00:00:00:00:01-s1-eth3","controller1_id":"odc1","controller2_id":"odc2","domain1_id":"(DEFAULT)"},"operstatus":"unknown"}}
*/
@Override
public Boundary deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException {
Boundary bound = new Boundary();
JsonToken current;
current = jp.nextToken();
while (jp.nextToken() != JsonToken.END_OBJECT) {
String fieldName = jp.getCurrentName();
if (fieldName.equals("boundary")) {
while (jp.nextToken() != JsonToken.END_OBJECT) {
if (jp.getCurrentName().equals("boundary_id")) {
bound.setBoundary_id(jp.getText());
}
fieldName = jp.getCurrentName();
if (fieldName.equals("link")) {
Link link = new Link();
while (jp.nextToken() != JsonToken.END_OBJECT) {
if (jp.getCurrentName().equals("logical_port1_id")) {
link.setLogical_port1_id(jp.getText());
}
if (jp.getCurrentName().equals("domain1_id")) {
link.setDomain1_id(jp.getText());
}
if (jp.getCurrentName().equals("controller1_id")) {
link.setController1_id(jp.getText());
}
if (jp.getCurrentName().equals("logical_port2_id")) {
link.setLogical_port2_id(jp.getText());
}
if (jp.getCurrentName().equals("domain2_id")) {
link.setDomain2_id(jp.getText());
}
if (jp.getCurrentName().equals("controller2_id")) {
link.setController2_id(jp.getText());
}
}
bound.setLink(link);
}
}
}
}
return bound;
}
}