package net.floodlightcontroller.dhcpserver.web; import java.io.IOException; import org.projectfloodlight.openflow.types.IPv4Address; import net.floodlightcontroller.core.types.NodePortTuple; import net.floodlightcontroller.dhcpserver.DHCPInstance; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator.Feature; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; public class DHCPInstanceSerializer extends JsonSerializer<DHCPInstance> { @Override public void serialize(DHCPInstance instance, JsonGenerator jGen, SerializerProvider serializer) throws IOException, JsonProcessingException { jGen.configure(Feature.WRITE_NUMBERS_AS_STRINGS, true); jGen.writeStartObject(); jGen.writeStringField("name", instance.getName()); jGen.writeStringField("domain_name", instance.getDomainName()); jGen.writeStringField("broadcast_ip", instance.getBroadcastIp().toString()); jGen.writeArrayFieldStart("dns_ips"); for (IPv4Address ip : instance.getDnsIps()) { jGen.writeString(ip.toString()); } jGen.writeEndArray(); jGen.writeArrayFieldStart("ntp_ips"); for (IPv4Address ip : instance.getNtpIps()) { jGen.writeString(ip.toString()); } jGen.writeEndArray(); jGen.writeArrayFieldStart("ntp_ips"); for (NodePortTuple ip : instance.getMemberPorts()) { jGen.writeStartObject(); jGen.writeString(ip.toString()); } jGen.writeEndArray(); jGen.writeNumberField("lease_hold_time_sec", instance.getHoldTimeSec()); jGen.writeNumberField("lease_time_sec", instance.getLeaseTimeSec()); jGen.writeNumberField("lease_rebind_time_sec", instance.getRebindTimeSec()); jGen.writeNumberField("lease_renewal_time_sec", instance.getRenewalTimeSec()); jGen.writeBooleanField("ip_forwarding", instance.getIpForwarding()); jGen.writeStringField("router_ip", instance.getRouterIp().toString()); jGen.writeStringField("server_ip", instance.getServerIp().toString()); jGen.writeStringField("server_mac", instance.getServerMac().toString()); jGen.writeStringField("server_ip", instance.getSubnetMask().toString()); jGen.writeEndObject(); } }