package net.floodlightcontroller.core.web.serializers; import java.io.IOException; import java.util.List; import net.floodlightcontroller.core.web.OFGroupStatsEntryMod; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.SerializerProvider; import org.codehaus.jackson.map.ser.std.SerializerBase; import org.projectfloodlight.openflow.protocol.OFBucketCounter; import org.projectfloodlight.openflow.protocol.OFGroupStatsEntry; public class OFGroupStatsEntryModSerializer extends SerializerBase<OFGroupStatsEntryMod>{ protected OFGroupStatsEntryModSerializer(){ super(OFGroupStatsEntryMod.class); } @Override public void serialize(OFGroupStatsEntryMod groupStatsEntryMod, JsonGenerator jGen, SerializerProvider sp) throws IOException, JsonGenerationException { OFGroupStatsEntry groupStatsModEntry = groupStatsEntryMod.getGroupStatsEntry(); List<OFBucketCounter> bucketCounters = groupStatsModEntry.getBucketStats(); jGen.writeStartObject(); jGen.writeNumberField("groupId", groupStatsModEntry.getGroup().getGroupNumber()); jGen.writeNumberField("packetCount", groupStatsModEntry.getPacketCount().getValue()); jGen.writeNumberField("byteCount", groupStatsModEntry.getByteCount().getValue()); jGen.writeNumberField("durationNsec", groupStatsModEntry.getDurationNsec()); jGen.writeNumberField("durationSec", groupStatsModEntry.getDurationSec()); jGen.writeArrayFieldStart("bucketStats"); for (OFBucketCounter bucketCouter : bucketCounters){ jGen.writeStartObject(); jGen.writeNumberField("pktCount", bucketCouter.getPacketCount().getValue()); jGen.writeNumberField("byteCount", bucketCouter.getByteCount().getValue()); jGen.writeEndObject(); } jGen.writeEndArray(); jGen.writeEndObject(); } }