blob: 097290b99ea51a6bbc6be66ff279cdf7400197f5 [file] [log] [blame]
Fahad Naeem Khan9ae7fa12014-10-03 14:30:55 -07001package net.floodlightcontroller.core.web.serializers;
2import java.io.IOException;
3import java.util.List;
4
5import net.floodlightcontroller.core.web.OFGroupDescStatsEntryMod;
6
7import org.codehaus.jackson.JsonGenerationException;
8import org.codehaus.jackson.JsonGenerator;
9import org.codehaus.jackson.map.SerializerProvider;
10import org.codehaus.jackson.map.ser.std.SerializerBase;
11import org.projectfloodlight.openflow.protocol.OFActionType;
12import org.projectfloodlight.openflow.protocol.OFBucket;
13import org.projectfloodlight.openflow.protocol.OFGroupDescStatsEntry;
14import org.projectfloodlight.openflow.protocol.action.OFAction;
15import org.projectfloodlight.openflow.protocol.action.*;
16public class OFGroupDescStatsEntryModSerializer extends SerializerBase<OFGroupDescStatsEntryMod>{
17
18
19
20 protected OFGroupDescStatsEntryModSerializer(){
21 super(OFGroupDescStatsEntryMod.class);
22 }
23
24 @Override
25 public void serialize(OFGroupDescStatsEntryMod GroupDescStatsModEntry, JsonGenerator jGen,
26 SerializerProvider sp) throws IOException,
27 JsonGenerationException {
28 OFGroupDescStatsEntry GroupStatsEntryMod = GroupDescStatsModEntry.getGroupDescStatsEntry();
29 List<OFBucket> Buckets = GroupStatsEntryMod.getBuckets();
30 jGen.writeStartObject();
31 jGen.writeNumberField("groupId", GroupStatsEntryMod.getGroup().getGroupNumber());
32 jGen.writeStringField("groupType", GroupStatsEntryMod.getGroupType().name());
33 for (OFBucket bucket : Buckets){
34 List<OFAction> actions = bucket.getActions();
35 for (OFAction action : actions ){
36 if(action.getType().compareTo(OFActionType.SET_FIELD) == 0){
37 //TODO: Need better if condition.
38 if (((OFActionSetField)action).getField().toString().contains("OFOxmEthSrcVer13")){
39 jGen.writeStringField("SET_DL_SRC", ((OFActionSetField)action).getField().getValue().toString());
40 }
41 else if (((OFActionSetField)action).getField().toString().contains("OFOxmEthDstVer13")){
42 jGen.writeStringField("SET_DL_DST", ((OFActionSetField)action).getField().getValue().toString());
43 }
44 }
45 else if(action.getType().compareTo(OFActionType.OUTPUT) == 0){
46 jGen.writeNumberField("OUTPPUT", ((OFActionOutput)action).getPort().getPortNumber());
47 }
48 }
49 }
50 jGen.writeEndObject();
51
52 }
53
54}