import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.FlowStatsResponseConvertor;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupStatsResponseConvertor;
+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.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter32;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter64;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.SelectLiveness;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.SelectWeight;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStats;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterConfigStatsUpdatedBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterFeaturesUpdatedBuilder;
.getLogger(SinglePurposeMultipartReplyTranslator.class);
private static FlowStatsResponseConvertor flowStatsConvertor = new FlowStatsResponseConvertor();
- private static GroupStatsResponseConvertor groupStatsConvertor = new GroupStatsResponseConvertor();
-
public List<DataObject> translate(final BigInteger datapathId, final short version, final OfHeader msg) {
MultipartReplyMessage mpReply = (MultipartReplyMessage) msg;
OpenflowVersion ofVersion = OpenflowVersion.get(version);
NodeId node = nodeIdFromDatapathId(datapathId);
+ VersionConvertorData simpleConvertorData = new VersionConvertorData(version);
translateFlow(listDataObject, mpReply, node, ofVersion, datapathId);
translateAggregate(listDataObject, mpReply, node);
translatePortStats(listDataObject, mpReply, node, ofVersion, datapathId);
translateGroup(listDataObject, mpReply, node);
- translateGroupDesc(listDataObject, mpReply, node, ofVersion);
+ translateGroupDesc(listDataObject, mpReply, node, simpleConvertorData);
translateGroupFeatures(listDataObject, mpReply, node);
translateMeter(listDataObject, mpReply, node);
translateMeterConfig(listDataObject, mpReply, node);
message.setTransactionId(generateTransactionId(mpReply.getXid()));
MultipartReplyGroupCase caseBody = (MultipartReplyGroupCase) mpReply.getMultipartReplyBody();
MultipartReplyGroup replyBody = caseBody.getMultipartReplyGroup();
- message.setGroupStats(groupStatsConvertor.toSALGroupStatsList(replyBody.getGroupStats()));
+ final Optional<List<GroupStats>> groupStatsList = ConvertorManager.getInstance().convert(
+ replyBody.getGroupStats());
+
+ message.setGroupStats(groupStatsList.orElse(Collections.emptyList()));
listDataObject.add(message.build());
}
private static void translateGroupDesc(final List<DataObject> listDataObject,
final MultipartReplyMessage mpReply,
final NodeId node,
- final OpenflowVersion ofVersion) {
+ VersionConvertorData simpleConvertorData) {
if (!MultipartType.OFPMPGROUPDESC.equals(mpReply.getType())) {
return;
}
MultipartReplyGroupDescCase caseBody = (MultipartReplyGroupDescCase) mpReply.getMultipartReplyBody();
MultipartReplyGroupDesc replyBody = caseBody.getMultipartReplyGroupDesc();
- message.setGroupDescStats(groupStatsConvertor.toSALGroupDescStatsList(replyBody.getGroupDesc(), ofVersion));
+ final Optional<List<GroupDescStats>> groupDescStatsList = ConvertorManager.getInstance().convert(
+ replyBody.getGroupDesc(), simpleConvertorData);
+
+ message.setGroupDescStats(groupDescStatsList.orElse(Collections.emptyList()));
listDataObject.add(message.build());
}