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.BoundaryMap;
import org.opennaas.extensions.opendaylight.vtn.model.vLink;
public class vLinkJSONDeserializer extends JsonDeserializer<vLink> {
@Override
public vLink deserialize(JsonParser jp, DeserializationContext dc) throws IOException, JsonProcessingException {
vLink vlink = new vLink();
JsonToken current = jp.nextToken();
while (jp.nextToken() != JsonToken.END_OBJECT) {
String fieldName = jp.getCurrentName();
if (fieldName.equals("vlink")) {
while (jp.nextToken() != JsonToken.END_OBJECT) {
if (jp.getCurrentName().equals("vlk_name")) {
vlink.setVlk_name(jp.getText());
}
if (jp.getCurrentName().equals("vnode1_name")) {
vlink.setVnode1_name(jp.getText());
}
if (jp.getCurrentName().equals("if1_name")) {
vlink.setIf1_name(jp.getText());
}
if (jp.getCurrentName().equals("vnode2_name")) {
vlink.setVnode2_name(jp.getText());
}
if (jp.getCurrentName().equals("if2_name")) {
vlink.setIf2_name(jp.getText());
}
fieldName = jp.getCurrentName();
if (fieldName.equals("boundary_map")) {
BoundaryMap bMap = new BoundaryMap();
while (jp.nextToken() != JsonToken.END_OBJECT) {
if (jp.getCurrentName().equals("boundary_id")) {
bMap.setBoundary_id(jp.getText());
}
if (jp.getCurrentName().equals("vlan_id")) {
bMap.setVlan_id(jp.getText());
}
}
vlink.setBoundaryMap(bMap);
}
}
}
}
return vlink;
}
}