OF10ActionDeserializer and ActionDeserializer split into separate classes
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / ActionDeserializerInitializer.java
diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/ActionDeserializerInitializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/ActionDeserializerInitializer.java
new file mode 100644 (file)
index 0000000..a1ed619
--- /dev/null
@@ -0,0 +1,89 @@
+/*\r
+ * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.openflowjava.protocol.impl.deserialization;\r
+\r
+import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10EnqueueActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10OutputActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlDstActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetDlSrcActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwDstActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwSrcActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetNwTosActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpDstActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetTpSrcActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanPcpActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10SetVlanVidActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF10StripVlanActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlInActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13CopyTtlOutActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecMplsTtlActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13DecNwTtlActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13GroupActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13OutputActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopMplsActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopPbbActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PopVlanActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushMplsActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushPbbActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13PushVlanActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetFieldActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetMplsTtlActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetNwTtlActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.deserialization.action.OF13SetQueueActionDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.util.EncodeConstants;\r
+import org.opendaylight.openflowjava.protocol.impl.util.SimpleDeserializerRegistryHelper;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
+\r
+/**\r
+ * @author michal.polkorab\r
+ *\r
+ */\r
+public class ActionDeserializerInitializer {\r
+\r
+    /**\r
+     * Registers action deserializers\r
+     * @param registry registry to be filled with deserializers\r
+     */\r
+    public static void registerDeserializers(DeserializerRegistry registry) {\r
+        // register OF v1.0 action deserializers\r
+        SimpleDeserializerRegistryHelper helper =\r
+                new SimpleDeserializerRegistryHelper(EncodeConstants.OF10_VERSION_ID, registry);\r
+        helper.registerDeserializer(0, Action.class, new OF10OutputActionDeserializer());\r
+        helper.registerDeserializer(1, Action.class, new OF10SetVlanVidActionDeserializer());\r
+        helper.registerDeserializer(2, Action.class, new OF10SetVlanPcpActionDeserializer());\r
+        helper.registerDeserializer(3, Action.class, new OF10StripVlanActionDeserializer());\r
+        helper.registerDeserializer(4, Action.class, new OF10SetDlSrcActionDeserializer());\r
+        helper.registerDeserializer(5, Action.class, new OF10SetDlDstActionDeserializer());\r
+        helper.registerDeserializer(6, Action.class, new OF10SetNwSrcActionDeserializer());\r
+        helper.registerDeserializer(7, Action.class, new OF10SetNwDstActionDeserializer());\r
+        helper.registerDeserializer(8, Action.class, new OF10SetNwTosActionDeserializer());\r
+        helper.registerDeserializer(9, Action.class, new OF10SetTpSrcActionDeserializer());\r
+        helper.registerDeserializer(10, Action.class, new OF10SetTpDstActionDeserializer());\r
+        helper.registerDeserializer(11, Action.class, new OF10EnqueueActionDeserializer());\r
+        // register OF v1.3 action deserializers\r
+        helper = new SimpleDeserializerRegistryHelper(EncodeConstants.OF13_VERSION_ID, registry);\r
+        helper.registerDeserializer(0, Action.class, new OF13OutputActionDeserializer());\r
+        helper.registerDeserializer(11, Action.class, new OF13CopyTtlOutActionDeserializer());\r
+        helper.registerDeserializer(12, Action.class, new OF13CopyTtlInActionDeserializer());\r
+        helper.registerDeserializer(15, Action.class, new OF13SetMplsTtlActionDeserializer());\r
+        helper.registerDeserializer(16, Action.class, new OF13DecMplsTtlActionDeserializer());\r
+        helper.registerDeserializer(17, Action.class, new OF13PushVlanActionDeserializer());\r
+        helper.registerDeserializer(18, Action.class, new OF13PopVlanActionDeserializer());\r
+        helper.registerDeserializer(19, Action.class, new OF13PushMplsActionDeserializer());\r
+        helper.registerDeserializer(20, Action.class, new OF13PopMplsActionDeserializer());\r
+        helper.registerDeserializer(21, Action.class, new OF13SetQueueActionDeserializer());\r
+        helper.registerDeserializer(22, Action.class, new OF13GroupActionDeserializer());\r
+        helper.registerDeserializer(23, Action.class, new OF13SetNwTtlActionDeserializer());\r
+        helper.registerDeserializer(24, Action.class, new OF13DecNwTtlActionDeserializer());\r
+        helper.registerDeserializer(25, Action.class, new OF13SetFieldActionDeserializer());\r
+        helper.registerDeserializer(26, Action.class, new OF13PushPbbActionDeserializer());\r
+        helper.registerDeserializer(27, Action.class, new OF13PopPbbActionDeserializer());\r
+    }\r
+}\r