X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fstatistics%2Fservices%2Fcompatibility%2FGroupStatisticsToNotificationTransformer.java;h=39bbfeb6d40193ec13ee6ddfc4cb47bd73153730;hb=7f4b511776bcdeab7d965ec78fc4a6d5b626ef47;hp=5df1440ec25dbc89c66741d593d661ad94735c55;hpb=82cd91207e0dfbea3bba59537e7ff9dcaf75d895;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java index 5df1440ec2..39bbfeb6d4 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/compatibility/GroupStatisticsToNotificationTransformer.java @@ -10,8 +10,10 @@ package org.opendaylight.openflowplugin.impl.statistics.services.compatibility; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; -import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.GroupStatsResponseConvertor; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupStatisticsUpdated; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupStatisticsUpdatedBuilder; @@ -24,19 +26,19 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 * pulled out group stats to notification transformation */ public class GroupStatisticsToNotificationTransformer { - - private static GroupStatsResponseConvertor groupStatsConvertor = new GroupStatsResponseConvertor(); - /** * @param mpReplyList raw multipart response from device * @param deviceInfo device state * @param emulatedTxId + * @param convertorExecutor * @return notification containing flow stats */ public static GroupStatisticsUpdated transformToNotification(final List mpReplyList, final DeviceInfo deviceInfo, - final TransactionId emulatedTxId) { + final TransactionId emulatedTxId, + final ConvertorExecutor convertorExecutor) { + VersionConvertorData data = new VersionConvertorData(deviceInfo.getVersion()); GroupStatisticsUpdatedBuilder notification = new GroupStatisticsUpdatedBuilder(); notification.setId(deviceInfo.getNodeId()); notification.setMoreReplies(Boolean.FALSE); @@ -47,7 +49,12 @@ public class GroupStatisticsToNotificationTransformer { for (MultipartReply mpReply : mpReplyList) { MultipartReplyGroupCase caseBody = (MultipartReplyGroupCase) mpReply.getMultipartReplyBody(); MultipartReplyGroup replyBody = caseBody.getMultipartReplyGroup(); - notification.getGroupStats().addAll(groupStatsConvertor.toSALGroupStatsList(replyBody.getGroupStats())); + final Optional> groupStatsList = convertorExecutor.convert( + replyBody.getGroupStats(), data); + + if (groupStatsList.isPresent()) { + notification.getGroupStats().addAll(groupStatsList.get()); + } } return notification.build(); }