Merge "OPNFLWPLUG-1062 Include additional LLDP fields in liblldp"
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / common / MultipartReplyTranslatorUtil.java
index 1a07a4340ce06a1d433bd7252cfa2a0397f5e9a6..a46b58d106b2cfd66356dbeaf2ed9a5b8a682bfa 100644 (file)
@@ -118,26 +118,31 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.multipart.reply.multipart.reply.body.MultipartReplyQueueStatsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMap;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMapBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.multipart.reply.multipart.reply.body.MultipartReplyTableFeaturesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.multipart.reply.multipart.reply.body.MultipartReplyTableFeaturesBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Class converts multipart reply messages to the objects that can be then written to datastore using
- * multipart writers
+ * multipart writers.
  */
-public class MultipartReplyTranslatorUtil {
+public final class MultipartReplyTranslatorUtil {
     private static final Logger LOG = LoggerFactory.getLogger(MultipartReplyTranslatorUtil.class);
 
-    public static Optional<? extends MultipartReplyBody> translate(final OfHeader message,
-                                                                   final DeviceInfo deviceInfo,
-                                                                   @Nullable final ConvertorExecutor convertorExecutor,
-                                                                   @Nullable final TranslatorLibrary translatorLibrary) {
+    private MultipartReplyTranslatorUtil() {
+    }
+
+    public static Optional<? extends MultipartReplyBody> translate(
+            final OfHeader message,
+            final DeviceInfo deviceInfo,
+            @Nullable final ConvertorExecutor convertorExecutor,
+            @Nullable final TranslatorLibrary translatorLibrary) {
+
         if (message instanceof MultipartReply) {
             final Optional<ConvertorExecutor> convertor = Optional.ofNullable(convertorExecutor);
             final Optional<TranslatorLibrary> translator = Optional.ofNullable(translatorLibrary);
-            final MultipartReply msg = MultipartReply.class.cast(message);
+            final MultipartReply msg = (MultipartReply) message;
             final OpenflowVersion ofVersion = OpenflowVersion.get(deviceInfo.getVersion());
             final VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData(deviceInfo.getVersion());
             data.setDatapathId(deviceInfo.getDatapathId());
@@ -171,14 +176,15 @@ public class MultipartReplyTranslatorUtil {
                     return convertor.flatMap(c -> Optional.of(translateTableFeatures(msg, deviceInfo.getVersion(), c)));
                 case OFPMPPORTDESC:
                     return translator.flatMap(t -> Optional.of(translatePortDesc(msg, deviceInfo, t)));
+                default:
             }
         } else if (message instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112
             .MultipartReply) {
-            return Optional.of(org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112
-                .MultipartReply.class.cast(message).getMultipartReplyBody());
+            return Optional.of(((org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112
+                .MultipartReplymessage).getMultipartReplyBody());
         }
 
-        LOG.debug("Failed to translate {} for node {}.", message.getImplementedInterface(), deviceInfo.getLOGValue());
+        LOG.debug("Failed to translate {} for node {}.", message.implementedInterface(), deviceInfo);
         return Optional.empty();
     }
 
@@ -206,10 +212,11 @@ public class MultipartReplyTranslatorUtil {
             .build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.multipart.reply.multipart.reply.body
-        .MultipartReplyTableFeatures translateTableFeatures(final MultipartReply msg,
-                                                            final short version,
-                                                            final ConvertorExecutor convertorExecutor) {
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.multipart.reply.multipart
+            .reply.body.MultipartReplyTableFeatures translateTableFeatures(
+                    final MultipartReply msg,
+                    final short version,
+                    final ConvertorExecutor convertorExecutor) {
         MultipartReplyTableFeaturesCase caseBody = (MultipartReplyTableFeaturesCase) msg.getMultipartReplyBody();
         final MultipartReplyTableFeatures multipartReplyTableFeatures = caseBody.getMultipartReplyTableFeatures();
         final Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features
@@ -221,8 +228,8 @@ public class MultipartReplyTranslatorUtil {
             .build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.multipart.reply.multipart.reply.body
-        .MultipartReplyDesc translateDesc(final MultipartReply msg) {
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.multipart.reply.multipart
+            .reply.body.MultipartReplyDesc translateDesc(final MultipartReply msg) {
         final MultipartReplyDesc desc = ((MultipartReplyDescCase) msg.getMultipartReplyBody()).getMultipartReplyDesc();
 
         return new MultipartReplyDescBuilder()
@@ -239,7 +246,7 @@ public class MultipartReplyTranslatorUtil {
                                                          final ConvertorExecutor convertorExecutor) {
         FlowStatsResponseConvertorData flowData = new FlowStatsResponseConvertorData(data.getVersion());
         flowData.setDatapathId(data.getDatapathId());
-        flowData.setMatchPath(MatchPath.FLOWSSTATISTICSUPDATE_FLOWANDSTATISTICSMAPLIST_MATCH);
+        flowData.setMatchPath(MatchPath.FLOWS_STATISTICS_UPDATE_MATCH);
         MultipartReplyFlowStatsBuilder message = new MultipartReplyFlowStatsBuilder();
         MultipartReplyFlowCase caseBody = (MultipartReplyFlowCase) msg.getMultipartReplyBody();
         MultipartReplyFlow replyBody = caseBody.getMultipartReplyFlow();
@@ -260,10 +267,11 @@ public class MultipartReplyTranslatorUtil {
         return message.build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart.reply.body
-        .MultipartReplyPortStats translatePortStats(final MultipartReply msg,
-                                                    final OpenflowVersion ofVersion,
-                                                    final BigInteger datapathId) {
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.multipart.reply.multipart
+            .reply.body.MultipartReplyPortStats translatePortStats(
+                    final MultipartReply msg,
+                    final OpenflowVersion ofVersion,
+                    final BigInteger datapathId) {
         MultipartReplyPortStatsBuilder message = new MultipartReplyPortStatsBuilder();
         MultipartReplyPortStatsCase caseBody = (MultipartReplyPortStatsCase) msg.getMultipartReplyBody();
         MultipartReplyPortStats replyBody = caseBody.getMultipartReplyPortStats();
@@ -297,7 +305,7 @@ public class MultipartReplyTranslatorUtil {
             }
             statsBuilder.setDuration(durationBuilder.build());
             statsBuilder.setCollisionCount(portStats.getCollisions());
-            statsBuilder.setKey(new NodeConnectorStatisticsAndPortNumberMapKey(statsBuilder.getNodeConnectorId()));
+            statsBuilder.withKey(new NodeConnectorStatisticsAndPortNumberMapKey(statsBuilder.getNodeConnectorId()));
             statsBuilder.setReceiveCrcError(portStats.getRxCrcErr());
             statsBuilder.setReceiveDrops(portStats.getRxDropped());
             statsBuilder.setReceiveErrors(portStats.getRxErrors());
@@ -328,10 +336,11 @@ public class MultipartReplyTranslatorUtil {
         return message.build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.multipart.reply.multipart.reply.body
-        .MultipartReplyGroupDesc translateGroupDesc(final MultipartReply msg,
-                                                    final VersionDatapathIdConvertorData data,
-                                                    final ConvertorExecutor convertorExecutor) {
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.multipart.reply.multipart
+            .reply.body.MultipartReplyGroupDesc translateGroupDesc(
+                    final MultipartReply msg,
+                    final VersionDatapathIdConvertorData data,
+                    final ConvertorExecutor convertorExecutor) {
         MultipartReplyGroupDescBuilder message = new MultipartReplyGroupDescBuilder();
         MultipartReplyGroupDescCase caseBody = (MultipartReplyGroupDescCase) msg.getMultipartReplyBody();
         MultipartReplyGroupDesc replyBody = caseBody.getMultipartReplyGroupDesc();
@@ -344,11 +353,11 @@ public class MultipartReplyTranslatorUtil {
         return message.build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.multipart.reply.multipart.reply.body
-        .MultipartReplyGroupFeatures translateGroupFeatures(final MultipartReply msg) {
-        MultipartReplyGroupFeaturesBuilder message = new MultipartReplyGroupFeaturesBuilder();
-        MultipartReplyGroupFeaturesCase caseBody = (MultipartReplyGroupFeaturesCase) msg.getMultipartReplyBody();
-        MultipartReplyGroupFeatures replyBody = caseBody.getMultipartReplyGroupFeatures();
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.multipart.reply.multipart
+            .reply.body.MultipartReplyGroupFeatures translateGroupFeatures(final MultipartReply msg) {
+        final MultipartReplyGroupFeaturesBuilder message = new MultipartReplyGroupFeaturesBuilder();
+        final MultipartReplyGroupFeaturesCase caseBody = (MultipartReplyGroupFeaturesCase) msg.getMultipartReplyBody();
+        final MultipartReplyGroupFeatures replyBody = caseBody.getMultipartReplyGroupFeatures();
         List<Class<? extends GroupType>> supportedGroups =
             new ArrayList<>();
 
@@ -395,30 +404,34 @@ public class MultipartReplyTranslatorUtil {
         MultipartReplyMeterStatsBuilder message = new MultipartReplyMeterStatsBuilder();
         MultipartReplyMeterCase caseBody = (MultipartReplyMeterCase) msg.getMultipartReplyBody();
         MultipartReplyMeter replyBody = caseBody.getMultipartReplyMeter();
-        final Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStats>> meterStatsList =
-            convertorExecutor.convert(replyBody.getMeterStats(), data);
+        final Optional<List<
+                org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStats
+                >>
+                meterStatsList = convertorExecutor.convert(replyBody.getMeterStats(), data);
 
         message.setMeterStats(meterStatsList.orElse(Collections.emptyList()));
 
         return message.build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.multipart.reply.multipart.reply.body
-        .MultipartReplyMeterConfig translateMeterConfig(final MultipartReply msg,
-                                                        final VersionDatapathIdConvertorData data,
-                                                        final ConvertorExecutor convertorExecutor) {
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.multipart.reply.multipart
+            .reply.body.MultipartReplyMeterConfig translateMeterConfig(
+                    final MultipartReply msg,
+                    final VersionDatapathIdConvertorData data,
+                    final ConvertorExecutor convertorExecutor) {
         MultipartReplyMeterConfigBuilder message = new MultipartReplyMeterConfigBuilder();
         MultipartReplyMeterConfigCase caseBody = (MultipartReplyMeterConfigCase) msg.getMultipartReplyBody();
         MultipartReplyMeterConfig replyBody = caseBody.getMultipartReplyMeterConfig();
-        final Optional<List<MeterConfigStats>> meterConfigStatsList = convertorExecutor.convert(replyBody.getMeterConfig(), data);
+        final Optional<List<MeterConfigStats>> meterConfigStatsList
+                = convertorExecutor.convert(replyBody.getMeterConfig(), data);
 
         message.setMeterConfigStats(meterConfigStatsList.orElse(Collections.emptyList()));
 
         return message.build();
     }
 
-    private static org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.multipart.reply.multipart.reply.body
-        .MultipartReplyMeterFeatures translateMeterFeatures(final MultipartReply msg) {
+    private static org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.multipart.reply.multipart
+            .reply.body.MultipartReplyMeterFeatures translateMeterFeatures(final MultipartReply msg) {
         MultipartReplyMeterFeaturesBuilder message = new MultipartReplyMeterFeaturesBuilder();
         MultipartReplyMeterFeaturesCase caseBody = (MultipartReplyMeterFeaturesCase) msg.getMultipartReplyBody();
         MultipartReplyMeterFeatures replyBody = caseBody.getMultipartReplyMeterFeatures();
@@ -463,7 +476,8 @@ public class MultipartReplyTranslatorUtil {
         MultipartReplyTable replyBody = caseBody.getMultipartReplyTable();
         List<TableStats> swTablesStats = replyBody.getTableStats();
 
-        List<FlowTableAndStatisticsMap> salFlowStats = new ArrayList<FlowTableAndStatisticsMap>();
+        List<FlowTableAndStatisticsMap> salFlowStats = new ArrayList<>();
+        //TODO: Duplicate code: look at OpendaylightFlowTableStatisticsServiceImpl method transformToNotification
         for (TableStats swTableStats : swTablesStats) {
             FlowTableAndStatisticsMapBuilder statisticsBuilder = new FlowTableAndStatisticsMapBuilder();