package net.onrc.onos.core.util.serializers;

import java.io.IOException;

import net.onrc.onos.core.util.IPv6Net;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;

/**
 * Serialize an IPv6Net address as a string.
 */
public class IPv6NetSerializer extends JsonSerializer<IPv6Net> {

    @Override
    public void serialize(IPv6Net ipv6Net, JsonGenerator jGen,
			  SerializerProvider serializer)
	throws IOException, JsonProcessingException {
	jGen.writeStartObject();
	jGen.writeStringField("value", ipv6Net.toString());
	jGen.writeEndObject();
    }
}
