package net.floodlightcontroller.core.web.serializers; import java.io.IOException; import net.floodlightcontroller.linkdiscovery.LinkTuple; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; import org.openflow.util.HexString; public class LinkTupleSerializer extends JsonSerializer<LinkTuple> { /** * Serializes the @LinkTuple object. * @param linkTuple The LinkTuple to serialize * @param jGen The JSON Generator to use * @param serializer The Jackson serializer provider */ @Override public void serialize(LinkTuple linkTuple, JsonGenerator jGen, SerializerProvider serializer) throws IOException, JsonProcessingException { jGen.writeStartObject(); jGen.writeNumberField("dst-port", linkTuple.getDst().getPort()); jGen.writeStringField("dst-switch", HexString.toHexString(linkTuple.getDst().getSw().getId())); jGen.writeNumberField("src-port", linkTuple.getSrc().getPort()); jGen.writeStringField("src-switch", HexString.toHexString(linkTuple.getSrc().getSw().getId())); if (linkTuple.getType() != null) { jGen.writeStringField("type", linkTuple.getType().toString()); } jGen.writeEndObject(); } /** * Tells SimpleModule that we are the serializer for @LinkTuple */ @Override public Class<LinkTuple> handledType() { return LinkTuple.class; } }