Bump MRI upstreams
[openflowplugin.git] / openflowjava / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / serialization / factories / OF10StatsRequestInputFactory.java
index fa01f6d8fc3784c87ae9e56a40386baea018c4b8..03e64f9aeb47afe52bc882ddb36680f356fa9434 100644 (file)
@@ -5,10 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.openflowjava.protocol.impl.serialization.factories;
 
+import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.writeUint32;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import io.netty.buffer.ByteBuf;
+import java.util.Objects;
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
 import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistryInjector;
@@ -33,11 +36,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.flow._case.MultipartRequestFlow;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.port.stats._case.MultipartRequestPortStats;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.queue._case.MultipartRequestQueue;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 /**
- * Translates StatsRequest messages
+ * Translates StatsRequest messages.
+ *
  * @author michal.polkorab
  */
+@SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
 public class OF10StatsRequestInputFactory implements OFSerializer<MultipartRequestInput>, SerializerRegistryInjector {
 
     private static final byte MESSAGE_TYPE = 16;
@@ -50,6 +56,8 @@ public class OF10StatsRequestInputFactory implements OFSerializer<MultipartReque
 
     @Override
     public void serialize(final MultipartRequestInput message, final ByteBuf outBuffer) {
+        Objects.requireNonNull(registry);
+
         ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.OFHEADER_SIZE);
         outBuffer.writeShort(message.getType().getIntValue());
         outBuffer.writeShort(createMultipartRequestFlagsBitmask(message.getFlags()));
@@ -72,21 +80,13 @@ public class OF10StatsRequestInputFactory implements OFSerializer<MultipartReque
     }
 
     private static int createMultipartRequestFlagsBitmask(final MultipartRequestFlags flags) {
-        return ByteBufUtils.fillBitMask(0, flags.isOFPMPFREQMORE());
+        return ByteBufUtils.fillBitMask(0, flags.getOFPMPFREQMORE());
     }
 
-    /**
-     * @param multipartRequestBody
-     * @param output
-     */
     private void serializeDescBody() {
         // The body of MultiPartRequestDesc is empty
     }
 
-    /**
-     * @param multipartRequestBody
-     * @param out
-     */
     private void serializeTableBody() {
      // The body of MultiPartTable is empty
     }
@@ -95,7 +95,7 @@ public class OF10StatsRequestInputFactory implements OFSerializer<MultipartReque
         MultipartRequestFlowCase flowCase = (MultipartRequestFlowCase) multipartRequestBody;
         MultipartRequestFlow flow = flowCase.getMultipartRequestFlow();
         OFSerializer<MatchV10> matchSerializer = registry.getSerializer(new MessageTypeKey<>(
-                EncodeConstants.OF10_VERSION_ID, MatchV10.class));
+                EncodeConstants.OF_VERSION_1_0, MatchV10.class));
         matchSerializer.serialize(flow.getMatchV10(), output);
         output.writeByte(flow.getTableId().shortValue());
         output.writeZero(PADDING_IN_MULTIPART_REQUEST_FLOW_BODY);
@@ -106,7 +106,7 @@ public class OF10StatsRequestInputFactory implements OFSerializer<MultipartReque
         MultipartRequestAggregateCase aggregateCase = (MultipartRequestAggregateCase) multipartRequestBody;
         MultipartRequestAggregate aggregate = aggregateCase.getMultipartRequestAggregate();
         OFSerializer<MatchV10> matchSerializer = registry.getSerializer(new MessageTypeKey<>(
-                EncodeConstants.OF10_VERSION_ID, MatchV10.class));
+                EncodeConstants.OF_VERSION_1_0, MatchV10.class));
         matchSerializer.serialize(aggregate.getMatchV10(), output);
         output.writeByte(aggregate.getTableId().shortValue());
         output.writeZero(PADDING_IN_MULTIPART_REQUEST_AGGREGATE_BODY);
@@ -131,14 +131,14 @@ public class OF10StatsRequestInputFactory implements OFSerializer<MultipartReque
     private void serializeExperimenterBody(final MultipartRequestBody multipartRequestBody, final ByteBuf output) {
         MultipartRequestExperimenterCase expCase = (MultipartRequestExperimenterCase) multipartRequestBody;
         MultipartRequestExperimenter experimenter = expCase.getMultipartRequestExperimenter();
-        final long expId = experimenter.getExperimenter().getValue().longValue();
+        final Uint32 expId = experimenter.getExperimenter().getValue();
 
         // write experimenterId
-        output.writeInt((int) expId);
+        writeUint32(output, expId);
 
         OFSerializer<ExperimenterDataOfChoice> serializer = registry.getSerializer(
                 ExperimenterSerializerKeyFactory.createMultipartRequestSerializerKey(
-                        EncodeConstants.OF10_VERSION_ID, expId,
+                        EncodeConstants.OF_VERSION_1_0, expId,
                         -1 /* in order not to collide with OF >= 1.3 codecs*/));
         serializer.serialize(experimenter.getExperimenterDataOfChoice(), output);
     }
@@ -147,4 +147,4 @@ public class OF10StatsRequestInputFactory implements OFSerializer<MultipartReque
     public void injectSerializerRegistry(final SerializerRegistry serializerRegistry) {
         this.registry = serializerRegistry;
     }
-}
\ No newline at end of file
+}