OF10ActionsSerializer and OF13ActionsSerializer split into separate actions (to allow...
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / CodingUtils.java
index 37405cca1c101236f5764718cebb8b205eccc476..c0456d4dac5a85a487390e028bef819e13ed603e 100644 (file)
@@ -11,8 +11,11 @@ import io.netty.buffer.ByteBuf;
 \r
 import java.util.List;\r
 \r
+import org.opendaylight.openflowjava.protocol.api.extensibility.EnhancedMessageTypeKey;\r
 import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderSerializer;\r
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
 import org.opendaylight.yangtools.yang.binding.DataObject;\r
 \r
 /**\r
@@ -35,6 +38,25 @@ public abstract class CodingUtils {
         }\r
     }\r
 \r
+    /**\r
+     * Serializes action list\r
+     * @param list actions to be serialized\r
+     * @param outBuffer output buffer\r
+     * @param version Openflow wire version\r
+     * @param serializer serializer that can serialize \r
+     */\r
+    public static void serializeActions(List<Action> list,\r
+            SerializerRegistry registry, ByteBuf outBuffer, short version){\r
+        if (list != null) {\r
+            for (Action action : list) {\r
+                OFSerializer<Action> serializer = registry.getSerializer(\r
+                        new EnhancedMessageTypeKey<>(version,\r
+                                Action.class, action.getType()));\r
+                serializer.serialize(action, outBuffer);\r
+            }\r
+        }\r
+    }\r
+\r
     /**\r
      * Serializes header fields for all objects in a list\r
      * @param list list of items to be serialized\r