BUG-2794: Incorporated model Action api changes in OFJava to openflowplugin
[openflowplugin.git] / extension / openflowjava-extension-nicira / src / main / java / org / opendaylight / openflowjava / nx / codec / action / ResubmitCodec.java
index e9c9396d061a067662764ff524ab224ed56d1d0a..06bb6330f79395c292c2ee54fc69fce12d5b7da7 100644 (file)
 package org.opendaylight.openflowjava.nx.codec.action;
 
 import io.netty.buffer.ByteBuf;
-
 import org.opendaylight.openflowjava.nx.api.NiciraActionDeserializerKey;
 import org.opendaylight.openflowjava.nx.api.NiciraActionSerializerKey;
+import org.opendaylight.openflowjava.nx.api.NiciraConstants;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ExperimenterIdAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;
-import org.opendaylight.openflowjava.nx.codec.action.AbstractActionCodec;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.NxmNxResubmit;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.OfjAugNxAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.OfjAugNxActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.resubmit.grouping.ActionResubmit;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.resubmit.grouping.ActionResubmitBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionResubmit;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionResubmitBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.resubmit.grouping.NxActionResubmitBuilder;
 
 /**
  * Codec for the NX_RESUBMIT and NX_RESUBMIT_TABLE
@@ -39,12 +37,13 @@ public class ResubmitCodec extends AbstractActionCodec {
     public static final NiciraActionDeserializerKey TABLE_DESERIALIZER_KEY =
             new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, NXAST_RESUBMIT_TABLE_SUBTYPE);
 
-    private static final byte OFP_TABLE_ALL = (byte)255;
-    private static final short OFP_IN_PORT = (short)0xfff8;
+    private static final byte OFP_TABLE_ALL = (byte) 255;
+    private static final short OFP_IN_PORT = (short) 0xfff8;
     private static final int padding = 3; // nx_action_resubmit : uint8_t pad[3];
 
     public byte getSubType(ActionResubmit action) {
-        if ((action.getTable() == null) || (action.getTable().byteValue() == OFP_TABLE_ALL)) return NXAST_RESUBMIT_SUBTYPE;
+        if ((action.getNxActionResubmit().getTable() == null) || (action.getNxActionResubmit().getTable().byteValue() == OFP_TABLE_ALL))
+            return NXAST_RESUBMIT_SUBTYPE;
         return NXAST_RESUBMIT_TABLE_SUBTYPE;
     }
 
@@ -53,11 +52,13 @@ public class ResubmitCodec extends AbstractActionCodec {
         byte table = OFP_TABLE_ALL;
         short inPort = OFP_IN_PORT;
 
-        ActionResubmit action = input.getAugmentation(OfjAugNxAction.class).getActionResubmit();
+        ActionResubmit action = ((ActionResubmit) input.getActionChoice());
         serializeHeader(LENGTH, getSubType(action), outBuffer);
 
-        if (action.getInPort() != null) inPort = action.getInPort().shortValue();
-        if (action.getTable() != null) table = action.getTable().byteValue();
+        if (action.getNxActionResubmit().getInPort() != null)
+            inPort = action.getNxActionResubmit().getInPort().shortValue();
+        if (action.getNxActionResubmit().getTable() != null)
+            table = action.getNxActionResubmit().getTable().byteValue();
         outBuffer.writeShort(inPort);
         outBuffer.writeByte(table);
         outBuffer.writeZero(padding);
@@ -66,15 +67,17 @@ public class ResubmitCodec extends AbstractActionCodec {
     @Override
     public Action deserialize(ByteBuf message) {
         ActionBuilder actionBuilder = deserializeHeader(message);
+
         ActionResubmitBuilder builder = new ActionResubmitBuilder();
-        builder.setInPort(message.readUnsignedShort());
-        builder.setTable(message.readUnsignedByte());
+        NxActionResubmitBuilder nxActionResubmitBuilder = new NxActionResubmitBuilder();
+        nxActionResubmitBuilder.setInPort(message.readUnsignedShort());
+        nxActionResubmitBuilder.setTable(message.readUnsignedByte());
+        ExperimenterId experimenterId = new ExperimenterId(NiciraConstants.NX_VENDOR_ID);
+                nxActionResubmitBuilder.setExperimenterId(experimenterId);
+        builder.setNxActionResubmit(nxActionResubmitBuilder.build());
         message.skipBytes(padding);
-        OfjAugNxActionBuilder augNxActionBuilder = new OfjAugNxActionBuilder();
-        augNxActionBuilder.setActionResubmit(builder.build());
-        actionBuilder.addAugmentation(ExperimenterIdAction.class,
-                                      createExperimenterIdAction(NxmNxResubmit.class));
-        actionBuilder.addAugmentation(OfjAugNxAction.class, augNxActionBuilder.build());
+
+        actionBuilder.setActionChoice(builder.build());
         return actionBuilder.build();
     }