Merge "Bug 8873 - Bundle based reconciliation to enable bundling of messages"
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / translator / MultipartReplyTableFeaturesToTableUpdatedTranslator.java
index 6ffe053519af534b38bab6aa5832b97e3457832a..e2f755ca3759af12b550689d0686185ad6912d97 100644 (file)
@@ -16,7 +16,8 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import org.opendaylight.openflowplugin.api.openflow.md.core.IMDMessageTranslator;
 import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;
 import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData;
 import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
@@ -37,6 +38,11 @@ public class MultipartReplyTableFeaturesToTableUpdatedTranslator implements
 
     private static final Logger LOG = LoggerFactory
             .getLogger(MultipartReplyTableFeaturesToTableUpdatedTranslator.class);
+    private final ConvertorExecutor convertorExecutor;
+
+    public MultipartReplyTableFeaturesToTableUpdatedTranslator(ConvertorExecutor convertorExecutor) {
+        this.convertorExecutor = convertorExecutor;
+    }
 
     @Override
     public List<DataObject> translate(SwitchConnectionDistinguisher cookie, SessionContext sc, OfHeader msg) {
@@ -46,7 +52,7 @@ public class MultipartReplyTableFeaturesToTableUpdatedTranslator implements
 
             List<DataObject> listDataObject = new CopyOnWriteArrayList<>();
 
-            TableUpdatedBuilder message = new TableUpdatedBuilder() ;
+            TableUpdatedBuilder message = new TableUpdatedBuilder();
             message.setNode((new NodeRef(InventoryDataServiceUtil.identifierFromDatapathId(sc.getFeatures()
                     .getDatapathId()))));
             message.setMoreReplies(mpReply.getFlags().isOFPMPFREQMORE());
@@ -54,7 +60,8 @@ public class MultipartReplyTableFeaturesToTableUpdatedTranslator implements
             MultipartReplyTableFeaturesCase caseBody = (MultipartReplyTableFeaturesCase) mpReply.getMultipartReplyBody();
             MultipartReplyTableFeatures body = caseBody.getMultipartReplyTableFeatures();
 
-            final Optional<List<TableFeatures>> tableFeaturesList = ConvertorManager.getInstance().convert(body);
+            final VersionConvertorData data = new VersionConvertorData(sc.getPrimaryConductor().getVersion());
+            final Optional<List<TableFeatures>> tableFeaturesList = convertorExecutor.convert(body, data);
             message.setTableFeatures(tableFeaturesList.orElse(Collections.emptyList()));
             listDataObject.add( message.build()) ;