Bug 5540 - GroupConvertor, GroupStatsConvertor, GroupDescStatsConvertor
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / GroupService.java
index 431fea1e23c52b63ae5e59032f96bd22394ea367..b165d8bdb1fa0d24bc74ff8bf96a2d3e729736b9 100644 (file)
@@ -7,10 +7,13 @@
  */
 package org.opendaylight.openflowplugin.impl.services;
 
+import java.util.Optional;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
 import org.opendaylight.openflowplugin.api.openflow.device.Xid;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupConvertor;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GroupModInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
@@ -23,9 +26,16 @@ final class GroupService<I extends Group, O extends DataObject> extends Abstract
 
     @Override
     protected OfHeader buildRequest(final Xid xid, final I input) {
-        final GroupModInputBuilder ofGroupModInput = GroupConvertor.toGroupModInput(input, getVersion(), getDatapathId());
-        ofGroupModInput.setXid(xid.getValue());
+        final VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData(getVersion());
+        data.setDatapathId(getDatapathId());
+        final Optional<GroupModInputBuilder> ofGroupModInput = ConvertorManager
+                .getInstance()
+                .convert(input, data);
 
-        return ofGroupModInput.build();
+        final GroupModInputBuilder groupModInputBuilder = ofGroupModInput
+                .orElse(GroupConvertor.defaultResult(getVersion()))
+                .setXid(xid.getValue());
+
+        return groupModInputBuilder.build();
     }
 }