Minor model refactor
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / ActionsSerializer.java
index 31754dcf995160a21d7048a7ab2596294b24649c..6c26cc2c65e1c9a879a2ff407cc558cea726e511 100644 (file)
@@ -38,9 +38,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetQueue;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.ActionsList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.actions.list.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;
 
 /**
  * Serializes ofp_actions (OpenFlow v1.3)
@@ -82,7 +81,6 @@ public abstract class ActionsSerializer {
     private static final byte PADDING_IN_ACTION_HEADER = 4;
     private static final byte ETHERTYPE_ACTION_PADDING = 2;
     private static final byte ACTION_IDS_LENGTH = 4;
-    
 
 
     /**
@@ -90,12 +88,11 @@ public abstract class ActionsSerializer {
      * @param actionsList list of actions to be encoded
      * @param outBuffer output ByteBuf
      */
-    public static void encodeActions(List<ActionsList> actionsList, ByteBuf outBuffer) {
+    public static void encodeActions(List<Action> actionsList, ByteBuf outBuffer) {
         if (actionsList == null) {
             return;
         }
-        for (ActionsList list : actionsList) {
-            Action action = list.getAction();
+        for (Action action : actionsList) {
             if (action.getType().isAssignableFrom(Output.class)) {
                 encodeOutputAction(action, outBuffer);
             } else if (action.getType().isAssignableFrom(CopyTtlOut.class)) {
@@ -139,12 +136,11 @@ public abstract class ActionsSerializer {
      * @param actionsList list of actions to be encoded
      * @param outBuffer output ByteBuf
      */
-    public static void encodeActionIds(List<ActionsList> actionsList, ByteBuf outBuffer) {
+    public static void encodeActionIds(List<Action> actionsList, ByteBuf outBuffer) {
         if (actionsList == null) {
             return;
         }
-        for (ActionsList list : actionsList) {
-            Action action = list.getAction();
+        for (Action action : actionsList) {
             if (action.getType().isAssignableFrom(Output.class)) {
                 writeTypeAndLength(outBuffer, OUTPUT_CODE, ACTION_IDS_LENGTH);
             } else if (action.getType().isAssignableFrom(CopyTtlOut.class)) {
@@ -178,7 +174,9 @@ public abstract class ActionsSerializer {
             } else if (action.getType().isAssignableFrom(PopPbb.class)) {
                 writeTypeAndLength(outBuffer, POP_PBB_CODE, ACTION_IDS_LENGTH);
             } else if (action.getType().isAssignableFrom(Experimenter.class)) {
-                writeTypeAndLength(outBuffer, EXPERIMENTER_CODE, ACTION_IDS_LENGTH);
+                writeTypeAndLength(outBuffer, EXPERIMENTER_CODE, EncodeConstants.EXPERIMENTER_IDS_LENGTH);
+                ExperimenterAction experimenter = action.getAugmentation(ExperimenterAction.class);
+                outBuffer.writeInt(experimenter.getExperimenter().intValue());
             } 
         }
     }
@@ -317,11 +315,10 @@ public abstract class ActionsSerializer {
      * @param actionsList list of actions
      * @return actions length
      */
-    public static int computeLengthOfActions(List<ActionsList> actionsList) {
+    public static int computeLengthOfActions(List<Action> actionsList) {
         int lengthOfActions = 0;
         if (actionsList != null) {
-            for (ActionsList list : actionsList) {
-                Action action = list.getAction();
+            for (Action action : actionsList) {
                 if (action.getType().isAssignableFrom(Output.class)) {
                     lengthOfActions += OUTPUT_LENGTH;
                 } else if (action.getType().isAssignableFrom(SetField.class)){