Bug 2756 - Action model update
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / action / OF13SetFieldActionDeserializer.java
index 5a1a533a7d4aa98cad19f90cbcc2a2f9f771900c..442f6d9416a6a71f880e3245315f2e1ee438dfd6 100644 (file)
@@ -18,12 +18,11 @@ import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegi
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.OxmFieldsAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.OxmFieldsActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetField;
-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.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionBase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.field._case.SetFieldActionBuilder;
+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.oxm.rev150225.match.entries.grouping.MatchEntry;
 
 /**
@@ -37,11 +36,11 @@ public class OF13SetFieldActionDeserializer extends AbstractActionDeserializer
 
     @Override
     public Action deserialize(ByteBuf input) {
-        ActionBuilder builder = new ActionBuilder();
-        builder.setType(getType());
+        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder builder = new ActionBuilder();
         int startIndex = input.readerIndex();
         input.skipBytes(2 * EncodeConstants.SIZE_OF_SHORT_IN_BYTES);
-        OxmFieldsActionBuilder matchEntries = new OxmFieldsActionBuilder();
+        SetFieldCaseBuilder caseBuilder = new SetFieldCaseBuilder();
+        SetFieldActionBuilder actionBuilder = new SetFieldActionBuilder();
         int oxmClass = input.getUnsignedShort(input.readerIndex());
         // get oxm_field & hasMask byte and extract the field value
         int oxmField = input.getUnsignedByte(input.readerIndex()
@@ -56,8 +55,9 @@ public class OF13SetFieldActionDeserializer extends AbstractActionDeserializer
         OFDeserializer<MatchEntry> matchDeserializer = registry.getDeserializer(key);
         List<MatchEntry> entry = new ArrayList<>();
         entry.add(matchDeserializer.deserialize(input));
-        matchEntries.setMatchEntry(entry);
-        builder.addAugmentation(OxmFieldsAction.class, matchEntries.build());
+        actionBuilder.setMatchEntry(entry);
+        caseBuilder.setSetFieldAction(actionBuilder.build());
+        builder.setActionChoice(caseBuilder.build());
         int paddingRemainder = (input.readerIndex() - startIndex) % EncodeConstants.PADDING;
         if (paddingRemainder != 0) {
             input.skipBytes(EncodeConstants.PADDING - paddingRemainder);
@@ -66,8 +66,8 @@ public class OF13SetFieldActionDeserializer extends AbstractActionDeserializer
     }
 
     @Override
-    protected Class<? extends ActionBase> getType() {
-        return SetField.class;
+    protected ActionChoice getType() {
+        return new SetFieldCaseBuilder().build();
     }
 
     @Override