BUG-2794: incorporate ofjava instruction changes 94/16694/6
authorTimotej Kubas <tkubas@cisco.com>
Tue, 17 Mar 2015 15:23:18 +0000 (16:23 +0100)
committerTimotej Kubas <tkubas@cisco.com>
Wed, 25 Mar 2015 11:12:18 +0000 (12:12 +0100)
- https://git.opendaylight.org/gerrit/#/c/16039/3

Change-Id: I3a8dd0b9666a91ba438bbced8e2c9e45aeb2a59e
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Signed-off-by: Timotej Kubas <tkubas@cisco.com>
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/FlowConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/OFToMDSalFlowConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/TableFeaturesConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/TableFeaturesReplyConvertor.java
openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/FlowConvertorTest.java
openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/OFToMDSalFlowConvertorTest.java
openflowplugin/src/test/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/TableFeaturesReplyConvertorTest.java

index 19029ae8b3dd27b4a93546396137e5793f9b528d..6837255dc90b7b8c64e0a0ed40c077fa054705e5 100644 (file)
@@ -51,15 +51,16 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatch;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionsInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionsInstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MetadataInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MetadataInstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MeterIdInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MeterIdInstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.TableIdInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.TableIdInstructionBuilder;
 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.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice._goto.table._case.GotoTableBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.meter._case.MeterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.actions._case.WriteActionsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.metadata._case.WriteMetadataBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand;
@@ -288,58 +289,58 @@ public class FlowConvertor {
             if (curInstruction instanceof GoToTableCase) {
                 GoToTableCase goToTablecase = (GoToTableCase) curInstruction;
                 GoToTable goToTable = goToTablecase.getGoToTable();
-                instructionBuilder
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable.class);
-                TableIdInstructionBuilder tableBuilder = new TableIdInstructionBuilder();
-                tableBuilder.setTableId(goToTable.getTableId());
-                instructionBuilder.addAugmentation(TableIdInstruction.class, tableBuilder.build());
+                GotoTableCaseBuilder gotoTableCaseBuilder = new GotoTableCaseBuilder();
+                GotoTableBuilder gotoTableBuilder = new GotoTableBuilder();
+                gotoTableBuilder.setTableId(goToTable.getTableId());
+                gotoTableCaseBuilder.setGotoTable(gotoTableBuilder.build());
+                instructionBuilder.setInstructionChoice(gotoTableCaseBuilder.build());
                 instructionsList.add(instructionBuilder.build());
             } else if (curInstruction instanceof WriteMetadataCase) {
                 WriteMetadataCase writeMetadatacase = (WriteMetadataCase) curInstruction;
                 WriteMetadata writeMetadata = writeMetadatacase.getWriteMetadata();
-                instructionBuilder
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata.class);
-                MetadataInstructionBuilder metadataBuilder = new MetadataInstructionBuilder();
-                metadataBuilder.setMetadata(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadata(),
-                        OFConstants.SIZE_OF_LONG_IN_BYTES));
-                metadataBuilder
-                        .setMetadataMask(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadataMask(),
-                                OFConstants.SIZE_OF_LONG_IN_BYTES));
-                instructionBuilder.addAugmentation(MetadataInstruction.class, metadataBuilder.build());
+                
+                WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();
+                WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();
+                writeMetadataBuilder.setMetadata(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadata(),
+                                                                             OFConstants.SIZE_OF_LONG_IN_BYTES));
+                writeMetadataBuilder.setMetadataMask(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadataMask(),
+                                                                                     OFConstants.SIZE_OF_LONG_IN_BYTES));
+                writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());
+                instructionBuilder.setInstructionChoice(writeMetadataCaseBuilder.build());
                 instructionsList.add(instructionBuilder.build());
             } else if (curInstruction instanceof WriteActionsCase) {
                 WriteActionsCase writeActionscase = (WriteActionsCase) curInstruction;
                 WriteActions writeActions = writeActionscase.getWriteActions();
-                instructionBuilder
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions.class);
-                ActionsInstructionBuilder actionsInstructionBuilder = new ActionsInstructionBuilder();
-                actionsInstructionBuilder.setAction(ActionConvertor.getActions(writeActions.getAction(),
-                        version, datapathid, flow));
-                instructionBuilder.addAugmentation(ActionsInstruction.class, actionsInstructionBuilder.build());
+                WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
+                WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();
+                writeActionsBuilder.setAction(ActionConvertor.getActions(writeActions.getAction(),version, datapathid, flow));
+                writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());
+                instructionBuilder.setInstructionChoice(writeActionsCaseBuilder.build());
                 instructionsList.add(instructionBuilder.build());
             } else if (curInstruction instanceof ApplyActionsCase) {
                 ApplyActionsCase applyActionscase = (ApplyActionsCase) curInstruction;
                 ApplyActions applyActions = applyActionscase.getApplyActions();
-                instructionBuilder
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions.class);
-                ActionsInstructionBuilder actionsInstructionBuilder = new ActionsInstructionBuilder();
-                actionsInstructionBuilder.setAction(ActionConvertor.getActions(applyActions.getAction(),
-                        version, datapathid, flow));
-                instructionBuilder.addAugmentation(ActionsInstruction.class, actionsInstructionBuilder.build());
+                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder applyActionsCaseBuilder = 
+                        new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder();
+                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.apply.actions._case.ApplyActionsBuilder applyActionsBuilder = 
+                        new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.apply.actions._case.ApplyActionsBuilder();
+                applyActionsBuilder.setAction(ActionConvertor.getActions(applyActions.getAction(), version, datapathid, flow));
+                applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());
+                instructionBuilder.setInstructionChoice(applyActionsCaseBuilder.build());
                 instructionsList.add(instructionBuilder.build());
             } else if (curInstruction instanceof ClearActionsCase) {
-                instructionBuilder
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions.class);
+                ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();  
+                instructionBuilder.setInstructionChoice(clearActionsCaseBuilder.build());
                 instructionsList.add(instructionBuilder.build());
             } else if (curInstruction instanceof MeterCase) {
                 MeterCase metercase = (MeterCase) curInstruction;
                 Meter meter = metercase.getMeter();
-                instructionBuilder
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter.class);
-                MeterIdInstructionBuilder meterBuilder = new MeterIdInstructionBuilder();
+                MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();
+                MeterBuilder meterBuilder = new MeterBuilder();
                 Long meterId = meter.getMeterId().getValue();
                 meterBuilder.setMeterId(meterId);
-                instructionBuilder.addAugmentation(MeterIdInstruction.class, meterBuilder.build());
+                meterCaseBuilder.setMeter(meterBuilder.build());
+                instructionBuilder.setInstructionChoice(meterCaseBuilder.build());
                 instructionsList.add(instructionBuilder.build());
             }
         }
index 2720b94efbbc2a03450796d3e1d4b7a977f23900..0eb3f4b171daf542ee44c0ae6686df18e5e5e77c 100644 (file)
@@ -7,9 +7,6 @@
  */
 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
 
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.List;
 import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
 import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
@@ -18,10 +15,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Instructions;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.InstructionsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.MeterCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.apply.actions._case.ApplyActionsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.clear.actions._case.ClearActionsBuilder;
@@ -33,12 +32,15 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instru
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionsInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MetadataInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MeterIdInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.TableIdInstruction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCase;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
 
-public class OFToMDSalFlowConvertor {
+public final class OFToMDSalFlowConvertor {
 
     private OFToMDSalFlowConvertor() {
         // hiding implicite constructor
@@ -61,65 +63,63 @@ public class OFToMDSalFlowConvertor {
         int instructionTreeNodekey = 0;
         org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction salInstruction;
         for (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction switchInst : instructions) {
-            if (switchInst.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions.class)) {
+            if (switchInst.getInstructionChoice() instanceof ApplyActionsCase) {
 
-                ActionsInstruction actionsInstruction = (ActionsInstruction) switchInst.getAugmentation(ActionsInstruction.class);
+                ApplyActionsCase actionsInstruction = ((ApplyActionsCase) switchInst.getInstructionChoice());
                 ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
                 ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();
 
 
-                applyActionsBuilder.setAction(wrapActionList(ActionConvertor.toMDSalActions(actionsInstruction.getAction(), ofVersion, ActionPath.FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_INSTRUCTIONS_INSTRUCTION_INSTRUCTION_APPLYACTIONSCASE_APPLYACTIONS_ACTION_ACTION)));
+                applyActionsBuilder.setAction(wrapActionList(ActionConvertor.toMDSalActions(actionsInstruction.getApplyActions().getAction(), ofVersion, ActionPath.FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_INSTRUCTIONS_INSTRUCTION_INSTRUCTION_APPLYACTIONSCASE_APPLYACTIONS_ACTION_ACTION)));
 
                 applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());
                 salInstruction = applyActionsCaseBuilder.build();
-            } else if (switchInst.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions.class)) {
+            } else if (switchInst.getInstructionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase) {
 
+                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase clearActionsCase = 
+                        ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase) switchInst.getInstructionChoice());
                 ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();
-                ClearActionsBuilder clearActionsBuilder = new ClearActionsBuilder();
-                clearActionsCaseBuilder.setClearActions(clearActionsBuilder.build());
-
                 salInstruction = clearActionsCaseBuilder.build();
-            } else if (switchInst.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable.class)) {
+            } else if (switchInst.getInstructionChoice() instanceof GotoTableCase) {
 
-                TableIdInstruction tableIdInstruction = (TableIdInstruction) switchInst.getAugmentation(TableIdInstruction.class);
+                GotoTableCase gotoTableCase = ((GotoTableCase) switchInst.getInstructionChoice());
 
                 GoToTableCaseBuilder goToTableCaseBuilder = new GoToTableCaseBuilder();
                 GoToTableBuilder goToTableBuilder = new GoToTableBuilder();
-                goToTableBuilder.setTableId(tableIdInstruction.getTableId());
+                goToTableBuilder.setTableId(gotoTableCase.getGotoTable().getTableId());
                 goToTableCaseBuilder.setGoToTable(goToTableBuilder.build());
 
                 salInstruction = goToTableCaseBuilder.build();
-            } else if (switchInst.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter.class)) {
+            } else if (switchInst.getInstructionChoice() instanceof MeterCase) {
 
-                MeterIdInstruction meterIdInstruction = (MeterIdInstruction) switchInst.getAugmentation(MeterIdInstruction.class);
+                MeterCase meterIdInstruction = ((MeterCase) switchInst.getInstructionChoice());
 
 
                 MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();
                 MeterBuilder meterBuilder = new MeterBuilder();
-                meterBuilder.setMeterId(new MeterId(meterIdInstruction.getMeterId()));
+                meterBuilder.setMeterId(new MeterId(meterIdInstruction.getMeter().getMeterId()));
                 meterCaseBuilder.setMeter(meterBuilder.build());
 
                 salInstruction = meterCaseBuilder.build();
-            } else if (switchInst.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions.class)) {
+            } else if (switchInst.getInstructionChoice() instanceof WriteActionsCase) {
 
-                ActionsInstruction actionsInstruction = (ActionsInstruction) switchInst.getAugmentation(ActionsInstruction.class);
+                WriteActionsCase writeActionsCase = ((WriteActionsCase) switchInst.getInstructionChoice());
 
                 WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
                 WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();
-                writeActionsBuilder.setAction(wrapActionList(ActionConvertor.toMDSalActions(actionsInstruction.getAction(), ofVersion, ActionPath.FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_INSTRUCTIONS_INSTRUCTION_INSTRUCTION_WRITEACTIONSCASE_WRITEACTIONS_ACTION_ACTION)));
+                writeActionsBuilder.setAction(wrapActionList(ActionConvertor.toMDSalActions(writeActionsCase.getWriteActions().getAction(), ofVersion, ActionPath.FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_INSTRUCTIONS_INSTRUCTION_INSTRUCTION_WRITEACTIONSCASE_WRITEACTIONS_ACTION_ACTION)));
                 writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());
 
                 salInstruction = writeActionsCaseBuilder.build();
-            } else if (switchInst.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata.class)) {
-
-                MetadataInstruction metadataInstruction = (MetadataInstruction) switchInst.getAugmentation(MetadataInstruction.class);
+            } else if (switchInst.getInstructionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase) {
 
+                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase writeMetadataCase = 
+                        ((org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase) switchInst.getInstructionChoice());
                 WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();
                 WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();
-                writeMetadataBuilder.setMetadata(new BigInteger(1, metadataInstruction.getMetadata()));
-                writeMetadataBuilder.setMetadataMask(new BigInteger(1, metadataInstruction.getMetadataMask()));
+                writeMetadataBuilder.setMetadata(new BigInteger(writeMetadataCase.getWriteMetadata().getMetadata()));
+                writeMetadataBuilder.setMetadataMask(new BigInteger(writeMetadataCase.getWriteMetadata().getMetadataMask()));
                 writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());
-
                 salInstruction = writeMetadataCaseBuilder.build();
             } else {
                 continue;
index 36e6129f71b9b38b089edafe474901b48a47e4aa..264accc8da77029e5fdfc5e93517d8139e36c14f 100644 (file)
@@ -61,6 +61,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetQueueCaseBuilder;
 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.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;
@@ -392,23 +398,23 @@ public class TableFeaturesConvertor {
             org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction instruction = currInstruction
                     .getInstruction();
             if (instruction instanceof GoToTableCase) {
-                instructionType
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable.class);
+                GotoTableCaseBuilder goToTableCaseBuilder = new GotoTableCaseBuilder();
+                instructionType.setInstructionChoice(goToTableCaseBuilder.build());
             } else if (instruction instanceof WriteMetadataCase) {
-                instructionType
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata.class);
+                WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();
+                instructionType.setInstructionChoice(writeMetadataCaseBuilder.build());
             } else if (instruction instanceof WriteActionsCase) {
-                instructionType
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions.class);
+                WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
+                instructionType.setInstructionChoice(writeActionsCaseBuilder.build());
             } else if (instruction instanceof ApplyActionsCase) {
-                instructionType
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions.class);
+                ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
+                instructionType.setInstructionChoice(applyActionsCaseBuilder.build());
             } else if (instruction instanceof ClearActionsCase) {
-                instructionType
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions.class);
+                ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();
+                instructionType.setInstructionChoice(clearActionsCaseBuilder.build());
             } else if (instruction instanceof MeterCase) {
-                instructionType
-                        .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter.class);
+                MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();
+                instructionType.setInstructionChoice(meterCaseBuilder.build());
             }
             // TODO: Experimeneter instructions are unhandled
             instructionTypeList.add(instructionType.build());
index 366ea30f20bbc855a446162822d5be119cf3723d..9c3a0387e742c3069d40d8ad6ce127f9e29020a3 100644 (file)
@@ -37,6 +37,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.InstructionRelatedTableFeatureProperty;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.NextTableRelatedTableFeatureProperty;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.OxmRelatedTableFeatureProperty;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.instruction.container.instruction.choice.ExperimenterIdCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.table.features.properties.container.table.feature.properties.NextTableIds;
 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.CopyTtlInCase;
@@ -58,6 +59,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTtlCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetQueueCase;
 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.instruction.rev130731.instruction.grouping.InstructionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpOp;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSha;
@@ -374,34 +382,27 @@ public class TableFeaturesReplyConvertor {
         for (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731
                 .instructions.grouping.Instruction currInstruction : properties
                 .getAugmentation(InstructionRelatedTableFeatureProperty.class).getInstruction()) {
-            Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.InstructionBase> currInstructionType = currInstruction
-                    .getType();
-            if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable.class)) {
+            InstructionChoice currInstructionType = currInstruction.getInstructionChoice();
+
+            if (currInstructionType instanceof GotoTableCase) {
                 builder.setInstruction((new GoToTableCaseBuilder()
                         .build()));
-            } else if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata.class)) {
+            } else if (currInstructionType instanceof WriteMetadataCase) {
                 builder.setInstruction((new WriteMetadataCaseBuilder()
                         .build()));
-            } else if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions.class)) {
+            } else if (currInstructionType instanceof WriteActionsCase) {
                 builder.setInstruction((new WriteActionsCaseBuilder()
                         .build()));
-            } else if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions.class)) {
+            } else if (currInstructionType instanceof ApplyActionsCase) {
                 builder.setInstruction((new ApplyActionsCaseBuilder()
                         .build()));
-            } else if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions.class)) {
+            } else if (currInstructionType instanceof ClearActionsCase) {
                 builder.setInstruction((new ClearActionsCaseBuilder()
                         .build()));
-            } else if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter.class)) {
+            } else if (currInstructionType instanceof MeterCase) {
                 builder.setInstruction((new MeterCaseBuilder()
                         .build()));
-            } else if (currInstructionType
-                    .equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Experimenter.class)) {
+            } else if (currInstructionType instanceof ExperimenterIdCase) {
                 // TODO: Experimenter instructions are unhandled
             }
             instructionList.add(builder.build());
index b17b5e3deba37ece462f9e0ea92b716fef696b83..5261bd1ce5784db5c848e2ca0c1114caa12d3f5d 100644 (file)
@@ -40,10 +40,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instru
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionsInstruction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MetadataInstruction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MeterIdInstruction;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.TableIdInstruction;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCase;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCase;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCase;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCase;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInput;\r
@@ -184,33 +185,35 @@ public class FlowConvertorTest {
         org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions\r
         .grouping.Instruction instruction = flowMod.getInstruction().get(0);\r
         Assert.assertEquals("Wrong type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".instruction.rev130731.GotoTable", instruction.getType().getName());\r
-        Assert.assertEquals("Wrong table id", 1, instruction.getAugmentation(TableIdInstruction.class)\r
-                .getTableId().intValue());\r
+                + ".instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCase", instruction.getInstructionChoice().getImplementedInterface().getName());\r
+        GotoTableCase gotoTableCase = (GotoTableCase) instruction.getInstructionChoice();\r
+        Assert.assertEquals("Wrong table id", 1, gotoTableCase.getGotoTable().getTableId().intValue());\r
         instruction = flowMod.getInstruction().get(1);\r
         Assert.assertEquals("Wrong type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".instruction.rev130731.WriteMetadata", instruction.getType().getName());\r
+                + ".instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase", instruction.getInstructionChoice().getImplementedInterface().getName());\r
+        WriteMetadataCase writeMetadataCase = (WriteMetadataCase) instruction.getInstructionChoice();\r
         Assert.assertArrayEquals("Wrong metadata", new byte[]{0, 0, 0, 0, 0, 0, 0, 2},\r
-                instruction.getAugmentation(MetadataInstruction.class).getMetadata());\r
+                writeMetadataCase.getWriteMetadata().getMetadata());\r
         Assert.assertArrayEquals("Wrong metadata mask", new byte[]{0, 0, 0, 0, 0, 0, 0, 3},\r
-                instruction.getAugmentation(MetadataInstruction.class).getMetadataMask());\r
+                writeMetadataCase.getWriteMetadata().getMetadataMask());\r
+        \r
         instruction = flowMod.getInstruction().get(2);\r
         Assert.assertEquals("Wrong type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".instruction.rev130731.WriteActions", instruction.getType().getName());\r
-        Assert.assertEquals("Wrong actions size", 0, instruction.getAugmentation(ActionsInstruction.class)\r
-                .getAction().size());\r
+                + ".instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCase", instruction.getInstructionChoice().getImplementedInterface().getName());\r
+        WriteActionsCase writeActionsCase = (WriteActionsCase) instruction.getInstructionChoice();\r
+        Assert.assertEquals("Wrong actions size", 0, writeActionsCase.getWriteActions().getAction().size());\r
         instruction = flowMod.getInstruction().get(3);\r
         Assert.assertEquals("Wrong type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".instruction.rev130731.ApplyActions", instruction.getType().getName());\r
-        Assert.assertEquals("Wrong actions size", 0, instruction.getAugmentation(ActionsInstruction.class)\r
-                .getAction().size());\r
+                + ".instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCase", instruction.getInstructionChoice().getImplementedInterface().getName());\r
+        ApplyActionsCase applyActionsCase =  (ApplyActionsCase) instruction.getInstructionChoice();\r
+        Assert.assertEquals("Wrong actions size", 0, applyActionsCase.getApplyActions().getAction().size());\r
         instruction = flowMod.getInstruction().get(4);\r
         Assert.assertEquals("Wrong type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".instruction.rev130731.ClearActions", instruction.getType().getName());\r
+                + ".instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase", instruction.getInstructionChoice().getImplementedInterface().getName());\r
         instruction = flowMod.getInstruction().get(5);\r
         Assert.assertEquals("Wrong type", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common"\r
-                + ".instruction.rev130731.Meter", instruction.getType().getName());\r
-        Assert.assertEquals("Wrong meter id", 5, instruction.getAugmentation(MeterIdInstruction.class)\r
-                .getMeterId().intValue());\r
+                + ".instruction.rev130731.instruction.grouping.instruction.choice.MeterCase", instruction.getInstructionChoice().getImplementedInterface().getName());\r
+        MeterCase meterCase = (MeterCase) instruction.getInstructionChoice();\r
+        Assert.assertEquals("Wrong meter id", 5, meterCase.getMeter().getMeterId().intValue());\r
     }\r
 }
\ No newline at end of file
index abc4eaba9de975a4433acbe0f6b60f7e473746ff..d4c49a926229f049bb139a0f20b02f0372b7edfd 100644 (file)
@@ -11,28 +11,26 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.junit.Test;
 import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Instructions;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionsInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionsInstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MetadataInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MetadataInstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MeterIdInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.MeterIdInstructionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.TableIdInstruction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.TableIdInstructionBuilder;
 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.instruction.rev130731.ApplyActions;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice._goto.table._case.GotoTableBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.apply.actions._case.ApplyActionsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.meter._case.MeterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.actions._case.WriteActionsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.metadata._case.WriteMetadataBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionBase;
@@ -66,15 +64,16 @@ public class OFToMDSalFlowConvertorTest {
         List<Instruction> instructionsList = new ArrayList<>();
         InstructionBuilder instructionBuilder = new InstructionBuilder();
         for (int i = 0; i < PRESET_COUNT; i++) {
-            instructionBuilder.setType(ApplyActions.class);
-            ActionsInstructionBuilder actionsInstructionBuilder = new ActionsInstructionBuilder();
+            ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
+            ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();
             ActionBuilder actionBuilder = new ActionBuilder();
             List<Action> actions = new ArrayList<>();
             for (int j = 0; j < PRESET_COUNT; j++) {
                 actions.add(actionBuilder.build());
             }
-            actionsInstructionBuilder.setAction(actions);
-            instructionBuilder.addAugmentation(ActionsInstruction.class, actionsInstructionBuilder.build());
+            applyActionsBuilder.setAction(actions);
+            applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());
+            instructionBuilder.setInstructionChoice(applyActionsCaseBuilder.build());
             instructionsList.add(instructionBuilder.build());
         }
 
@@ -84,10 +83,11 @@ public class OFToMDSalFlowConvertorTest {
 
         instructionsList = new ArrayList<>();
         for (int i = 0; i < PRESET_COUNT; i++) {
-            instructionBuilder.setType(GotoTable.class);
-            TableIdInstructionBuilder tableIdInstructionBuilder = new TableIdInstructionBuilder();
-            tableIdInstructionBuilder.setTableId((short) i);
-            instructionBuilder.addAugmentation(TableIdInstruction.class, tableIdInstructionBuilder.build());
+            GotoTableCaseBuilder gotoTableCaseBuilder = new GotoTableCaseBuilder();
+            GotoTableBuilder gotoTableBuilder = new GotoTableBuilder();
+            gotoTableBuilder.setTableId((short) i);
+            gotoTableCaseBuilder.setGotoTable(gotoTableBuilder.build());
+            instructionBuilder.setInstructionChoice(gotoTableCaseBuilder.build());
             instructionsList.add(instructionBuilder.build());
         }
 
@@ -97,10 +97,11 @@ public class OFToMDSalFlowConvertorTest {
 
         instructionsList = new ArrayList<>();
         for (int i = 0; i < PRESET_COUNT; i++) {
-            instructionBuilder.setType(Meter.class);
-            MeterIdInstructionBuilder meterIdInstructionBuilder = new MeterIdInstructionBuilder();
-            meterIdInstructionBuilder.setMeterId(Long.valueOf(i));
-            instructionBuilder.addAugmentation(MeterIdInstruction.class, meterIdInstructionBuilder.build());
+            MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();
+            MeterBuilder meterBuilder = new MeterBuilder();
+            meterBuilder.setMeterId(Long.valueOf(i));
+            meterCaseBuilder.setMeter(meterBuilder.build());
+            instructionBuilder.setInstructionChoice(meterCaseBuilder.build());
             instructionsList.add(instructionBuilder.build());
         }
 
@@ -111,15 +112,16 @@ public class OFToMDSalFlowConvertorTest {
 
         instructionsList = new ArrayList<>();
         for (int i = 0; i < PRESET_COUNT; i++) {
-            instructionBuilder.setType(WriteActions.class);
-            ActionsInstructionBuilder actionsInstructionBuilder = new ActionsInstructionBuilder();
+            WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
+            WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();
             ActionBuilder actionBuilder = new ActionBuilder();
             List<Action> actions = new ArrayList<>();
             for (int j = 0; j < PRESET_COUNT; j++) {
                 actions.add(actionBuilder.build());
             }
-            actionsInstructionBuilder.setAction(actions);
-            instructionBuilder.addAugmentation(ActionsInstruction.class, actionsInstructionBuilder.build());
+            writeActionsBuilder.setAction(actions);
+            writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());
+            instructionBuilder.setInstructionChoice(writeActionsCaseBuilder.build());
             instructionsList.add(instructionBuilder.build());
         }
 
@@ -129,21 +131,25 @@ public class OFToMDSalFlowConvertorTest {
 
         instructionsList = new ArrayList<>();
         for (int i = 0; i < PRESET_COUNT; i++) {
-            instructionBuilder.setType(ClearActions.class);
+            ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();
+            instructionBuilder.setInstructionChoice(clearActionsCaseBuilder.build());
             instructionsList.add(instructionBuilder.build());
         }
 
         instructions = OFToMDSalFlowConvertor.toSALInstruction(instructionsList, OpenflowVersion.OF13);
         assertNotNull(instructions);
-        assertEquals(PRESET_COUNT, instructions.getInstruction().size());
+        int instructionSize = instructions.getInstruction().size();
+        assertEquals(PRESET_COUNT, instructionSize);
 
         instructionsList = new ArrayList<>();
         for (int i = 0; i < PRESET_COUNT; i++) {
-            instructionBuilder.setType(WriteMetadata.class);
-            MetadataInstructionBuilder metadataInstructionBuilder = new MetadataInstructionBuilder();
-            metadataInstructionBuilder.setMetadata(new byte[i]);
-            metadataInstructionBuilder.setMetadataMask(new byte[i]);
-            instructionBuilder.addAugmentation(MetadataInstruction.class, metadataInstructionBuilder.build());
+            WriteMetadataCaseBuilder metadataCaseBuilder = new WriteMetadataCaseBuilder();
+            WriteMetadataBuilder metadataBuilder = new WriteMetadataBuilder();
+            
+            metadataBuilder.setMetadata(BigInteger.TEN.setBit(i).toByteArray());
+            metadataBuilder.setMetadataMask(BigInteger.ONE.setBit(i).toByteArray());
+            metadataCaseBuilder.setWriteMetadata(metadataBuilder.build());
+            instructionBuilder.setInstructionChoice(metadataCaseBuilder.build());
             instructionsList.add(instructionBuilder.build());
         }
 
index 1e8f7f4de89c6eb0116b120c2cbca6a1cef99939..099fcc961d5f19ea73f52067b29bb3d7ce3aa94b 100644 (file)
@@ -8,6 +8,10 @@
 \r
 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;\r
 \r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
 import org.junit.Assert;\r
 import org.junit.Test;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;\r
@@ -49,12 +53,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev1
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.src._case.SetNwSrcActionBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice._goto.table._case.GotoTableBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.apply.actions._case.ApplyActionsBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.meter._case.MeterBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.actions._case.WriteActionsBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.metadata._case.WriteMetadataBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;\r
@@ -91,9 +100,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;\r
-import java.math.BigInteger;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
 \r
 /**\r
  * @author michal.polkorab\r
@@ -160,6 +166,7 @@ public class TableFeaturesReplyConvertorTest {
         List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart\r
                 .reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features\r
                 .TableFeatures> features = new ArrayList<>();\r
+\r
         TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();\r
         featuresBuilder.setTableId((short) 5);\r
         featuresBuilder.setName("Aloha");\r
@@ -169,8 +176,10 @@ public class TableFeaturesReplyConvertorTest {
         featuresBuilder.setMetadataWrite(metaWrite);\r
         featuresBuilder.setConfig(new TableConfig(false));\r
         featuresBuilder.setMaxEntries(42L);\r
+\r
         List<TableFeatureProperties> properties = new ArrayList<>();\r
         TableFeaturePropertiesBuilder propBuilder = new TableFeaturePropertiesBuilder();\r
+\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLES);\r
         NextTableRelatedTableFeaturePropertyBuilder nextPropBuilder =\r
                 new NextTableRelatedTableFeaturePropertyBuilder();\r
@@ -181,6 +190,7 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());\r
         properties.add(propBuilder.build());\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
+\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS);\r
         nextPropBuilder = new NextTableRelatedTableFeaturePropertyBuilder();\r
         nextIds = new ArrayList<>();\r
@@ -189,38 +199,79 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());\r
         properties.add(propBuilder.build());\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
+\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS);\r
         InstructionRelatedTableFeaturePropertyBuilder insPropBuilder =\r
                 new InstructionRelatedTableFeaturePropertyBuilder();\r
+\r
+         /* -------------------------------------------------- */\r
+\r
+        List<Action> actions = new ArrayList<>();\r
         List<Instruction> insIds = new ArrayList<>();\r
         InstructionBuilder insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(WriteActions.class);\r
+        WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();\r
+        WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();\r
+        ActionBuilder actionBuilder = new ActionBuilder();\r
+        actionBuilder.setActionChoice(createSetNwSrcAction());\r
+        actions.add(actionBuilder.build());\r
+        writeActionsBuilder.setAction(actions);\r
+        writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());\r
+        insBuilder.setInstructionChoice(writeActionsCaseBuilder.build());\r
         insIds.add(insBuilder.build());\r
+        \r
+         /* -------------------------------------------------- */\r
+\r
         insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(GotoTable.class);\r
+        GotoTableCaseBuilder gotoCaseBuilder = new GotoTableCaseBuilder();\r
+        GotoTableBuilder gotoTableBuilder = new GotoTableBuilder();\r
+        gotoCaseBuilder.setGotoTable(gotoTableBuilder.build());\r
+        insBuilder.setInstructionChoice(gotoCaseBuilder.build());\r
         insIds.add(insBuilder.build());\r
         insPropBuilder.setInstruction(insIds);\r
         propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
         properties.add(propBuilder.build());\r
+\r
+         /* -------------------------------------------------- */\r
+\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS);\r
         insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();\r
         insIds = new ArrayList<>();\r
         insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(WriteMetadata.class);\r
+        WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();\r
+        WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();\r
+        writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());\r
+        insBuilder.setInstructionChoice(writeMetadataCaseBuilder.build());\r
         insIds.add(insBuilder.build());\r
+\r
         insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(ApplyActions.class);\r
+        ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();\r
+        ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();\r
+        applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());\r
+        insBuilder.setInstructionChoice(applyActionsCaseBuilder.build());\r
         insIds.add(insBuilder.build());\r
+\r
         insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(Meter.class);\r
+        MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();\r
+        MeterBuilder meterBuilder = new MeterBuilder();\r
+        meterCaseBuilder.setMeter(meterBuilder.build());\r
+        insBuilder.setInstructionChoice(meterCaseBuilder.build());\r
         insIds.add(insBuilder.build());\r
+\r
+\r
         insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(ClearActions.class);\r
+        ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();\r
+        insBuilder.setInstructionChoice(clearActionsCaseBuilder.build());\r
         insIds.add(insBuilder.build());\r
+\r
+\r
         insBuilder = new InstructionBuilder();\r
-        insBuilder.setType(GotoTable.class);\r
+        GotoTableCaseBuilder gotoCaseBuilder2 = new GotoTableCaseBuilder();\r
+        GotoTableBuilder gotoTableBuilder2 = new GotoTableBuilder();\r
+        gotoCaseBuilder2.setGotoTable(gotoTableBuilder2.build());\r
+        insBuilder.setInstructionChoice(gotoCaseBuilder2.build());\r
         insIds.add(insBuilder.build());\r
+\r
         insPropBuilder.setInstruction(insIds);\r
         propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
         properties.add(propBuilder.build());\r
@@ -236,6 +287,7 @@ public class TableFeaturesReplyConvertorTest {
         featuresBuilder.setConfig(new TableConfig(false));\r
         featuresBuilder.setMaxEntries(24L);\r
 \r
+        /* -------------------------------------------------- */\r
 \r
         properties = new ArrayList<>();\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
@@ -256,6 +308,8 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
         properties.add(propBuilder.build()); //[0]\r
 \r
+        /* -------------------------------------------------- */\r
+\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELD);\r
         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
@@ -274,6 +328,8 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
         properties.add(propBuilder.build());//[1]\r
 \r
+        /* -------------------------------------------------- */\r
+\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELD);\r
         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
@@ -292,6 +348,8 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
         properties.add(propBuilder.build());//[2]\r
 \r
+        /* -------------------------------------------------- */\r
+\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELDMISS);\r
         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
@@ -310,6 +368,8 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
         properties.add(propBuilder.build());//[3]\r
 \r
+        /* -------------------------------------------------- */\r
+\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELDMISS);\r
         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
@@ -330,6 +390,8 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
         properties.add(propBuilder.build());//[4]\r
 \r
+        /* -------------------------------------------------- */\r
+\r
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTWILDCARDS);\r
         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
@@ -356,9 +418,9 @@ public class TableFeaturesReplyConvertorTest {
         propBuilder = new TableFeaturePropertiesBuilder();\r
         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONS);\r
         ActionRelatedTableFeaturePropertyBuilder actBuilder = new ActionRelatedTableFeaturePropertyBuilder();\r
-        List<Action> actions = new ArrayList<>();\r
+        actions = new ArrayList<>();\r
 \r
-        ActionBuilder actionBuilder = new ActionBuilder();\r
+        actionBuilder = new ActionBuilder();\r
         actionBuilder.setActionChoice(createSetNwSrcAction());\r
         actions.add(actionBuilder.build());\r
 \r
@@ -470,6 +532,7 @@ public class TableFeaturesReplyConvertorTest {
         ids = propType2.getTablesMiss().getTableIds();\r
         Assert.assertEquals("Wrong next table-id size", 1, ids.size());\r
         Assert.assertEquals("Wrong next-registry-id", 3, ids.get(0).intValue());\r
+\r
         property = feature.getTableProperties().getTableFeatureProperties().get(2);\r
         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions",\r
                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
@@ -697,7 +760,7 @@ public class TableFeaturesReplyConvertorTest {
 \r
         matchEntries.add(matchEntryBuilder.build());\r
         setFieldActionBuilder.setMatchEntry(matchEntries);\r
-        setFieldCaseBuilder.setSetFieldAction(setFieldActionBuilder .build());\r
+        setFieldCaseBuilder.setSetFieldAction(setFieldActionBuilder.build());\r
         return setFieldCaseBuilder.build();\r
     }\r
 \r