Replace Empty.getInstance() with Empty.value()
[openflowplugin.git] / openflowjava / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / FlowModInputMessageFactory.java
index b063a566e79a0cae626c6e14c8c8aafa01e4b80e..3642c54b0fa06b01417cf06e847e247086077bb4 100644 (file)
@@ -7,24 +7,20 @@
  */
 package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
 
+import static java.util.Objects.requireNonNull;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint64;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
 
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import io.netty.buffer.ByteBuf;
-import java.util.List;
-import java.util.Objects;
 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
 import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector;
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.api.keys.MessageCodeKey;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.openflowjava.protocol.impl.util.CodeKeyMaker;
 import org.opendaylight.openflowjava.protocol.impl.util.CodeKeyMakerFactory;
 import org.opendaylight.openflowjava.protocol.impl.util.ListDeserializer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
@@ -37,15 +33,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * Translates FlowModInput messages.
  */
 public class FlowModInputMessageFactory implements OFDeserializer<FlowModInput>, DeserializerRegistryInjector {
-
     private static final byte PADDING = 2;
-    private DeserializerRegistry registry;
 
-    @Override
-    @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
-    public FlowModInput deserialize(ByteBuf rawMessage) {
-        Objects.requireNonNull(registry);
+    private DeserializerRegistry registry = null;
 
+    @Override
+    public FlowModInput deserialize(final ByteBuf rawMessage) {
         FlowModInputBuilder builder = new FlowModInputBuilder()
                 .setVersion(EncodeConstants.OF_VERSION_1_3)
                 .setXid(readUint32(rawMessage))
@@ -62,17 +55,17 @@ public class FlowModInputMessageFactory implements OFDeserializer<FlowModInput>,
                 .setFlags(createFlowModFlagsFromBitmap(rawMessage.readUnsignedShort()));
         rawMessage.skipBytes(PADDING);
         OFDeserializer<Match> matchDeserializer = registry.getDeserializer(
-                new MessageCodeKey(EncodeConstants.OF13_VERSION_ID, EncodeConstants.EMPTY_VALUE, Match.class));
-        builder.setMatch(matchDeserializer.deserialize(rawMessage));
-        CodeKeyMaker keyMaker = CodeKeyMakerFactory.createInstructionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
-        List<Instruction> instructions = ListDeserializer.deserializeList(EncodeConstants.OF13_VERSION_ID,
-                rawMessage.readableBytes(), rawMessage, keyMaker, registry);
-        builder.setInstruction(instructions);
-        return builder.build();
+                new MessageCodeKey(EncodeConstants.OF_VERSION_1_3, EncodeConstants.EMPTY_VALUE, Match.class));
+        return builder
+            .setMatch(matchDeserializer.deserialize(rawMessage))
+            .setInstruction(ListDeserializer.deserializeList(EncodeConstants.OF13_VERSION_ID,
+                rawMessage.readableBytes(), rawMessage,
+                CodeKeyMakerFactory.createInstructionsKeyMaker(EncodeConstants.OF_VERSION_1_3), registry))
+            .build();
     }
 
     @SuppressWarnings("checkstyle:AbbreviationAsWordInName")
-    private static FlowModFlags createFlowModFlagsFromBitmap(int input) {
+    private static FlowModFlags createFlowModFlagsFromBitmap(final int input) {
         final Boolean _oFPFFSENDFLOWREM = (input & 1 << 0) != 0;
         final Boolean _oFPFFCHECKOVERLAP = (input & 1 << 1) != 0;
         final Boolean _oFPFFRESETCOUNTS = (input & 1 << 2) != 0;
@@ -83,7 +76,7 @@ public class FlowModInputMessageFactory implements OFDeserializer<FlowModInput>,
     }
 
     @Override
-    public void injectDeserializerRegistry(DeserializerRegistry deserializerRegistry) {
-        registry = deserializerRegistry;
+    public void injectDeserializerRegistry(final DeserializerRegistry deserializerRegistry) {
+        registry = requireNonNull(deserializerRegistry);
     }
 }