Cleanup a few protocol deserializers 10/94410/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 5 Jan 2021 12:54:44 +0000 (13:54 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 5 Jan 2021 12:54:44 +0000 (13:54 +0100)
We can use a simple list and reorganize our builders for clarity.

Change-Id: I3660eab1e0ace31e900d6e31e0ada276624b8edc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/action/OF13OutputActionDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/action/OF13SetFieldActionDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/action/OF13SetMplsTtlActionDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/action/OF13SetNwTtlActionDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/action/OF13SetQueueActionDeserializer.java

index d729b703407a3f04b7c77022d5d4701ec148d5d0..3132fb984d606f6e453bb56cbfda81a0c86e4463 100644 (file)
@@ -31,16 +31,15 @@ public class OF13OutputActionDeserializer extends AbstractActionDeserializer<Out
 
     @Override
     public Action deserialize(final ByteBuf input) {
-        final org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
-            .ActionBuilder builder = new ActionBuilder();
         input.skipBytes(2 * Short.BYTES);
-        OutputActionCaseBuilder caseBuilder = new OutputActionCaseBuilder();
-        OutputActionBuilder actionBuilder = new OutputActionBuilder();
-        actionBuilder.setPort(new PortNumber(readUint32(input)));
-        actionBuilder.setMaxLength(readUint16(input));
-        caseBuilder.setOutputAction(actionBuilder.build());
-        builder.setActionChoice(caseBuilder.build());
+        final var action = new OutputActionBuilder()
+            .setPort(new PortNumber(readUint32(input)))
+            .setMaxLength(readUint16(input))
+            .build();
         input.skipBytes(ActionConstants.OUTPUT_PADDING);
-        return builder.build();
+
+        return new ActionBuilder()
+            .setActionChoice(new OutputActionCaseBuilder().setOutputAction(action).build())
+            .build();
     }
 }
index 324bb965cdfe21b7986df34ce0eb664738c23aaf..aa798442902406a6c76b036b794205437290b0e1 100644 (file)
@@ -7,11 +7,11 @@
  */
 package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
 
+import static java.util.Objects.requireNonNull;
+
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import io.netty.buffer.ByteBuf;
-import java.util.ArrayList;
 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;
@@ -41,14 +41,9 @@ public class OF13SetFieldActionDeserializer extends AbstractActionDeserializer<S
     @Override
     @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
     public Action deserialize(final ByteBuf input) {
-        Objects.requireNonNull(registry);
-
-        final  org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping
-            .ActionBuilder builder = new ActionBuilder();
         final int startIndex = input.readerIndex();
+
         input.skipBytes(2 * Short.BYTES);
-        final SetFieldCaseBuilder caseBuilder = new SetFieldCaseBuilder();
-        SetFieldActionBuilder actionBuilder = new SetFieldActionBuilder();
         int oxmClass = input.getUnsignedShort(input.readerIndex());
         // get oxm_field & hasMask byte and extract the field value
         int oxmField = input.getUnsignedByte(input.readerIndex() + Short.BYTES) >>> 1;
@@ -58,17 +53,20 @@ public class OF13SetFieldActionDeserializer extends AbstractActionDeserializer<S
             long expId = input.getUnsignedInt(input.readerIndex() + Short.BYTES + 2 * Byte.BYTES);
             key.setExperimenterId(Uint32.valueOf(expId));
         }
-        OFDeserializer<MatchEntry> matchDeserializer = registry.getDeserializer(key);
-        List<MatchEntry> entry = new ArrayList<>();
-        entry.add(matchDeserializer.deserialize(input));
-        actionBuilder.setMatchEntry(entry);
-        caseBuilder.setSetFieldAction(actionBuilder.build());
-        builder.setActionChoice(caseBuilder.build());
+
+        final OFDeserializer<MatchEntry> matchDeserializer = requireNonNull(registry).getDeserializer(key);
+        final var entry = matchDeserializer.deserialize(input);
+
         int paddingRemainder = (input.readerIndex() - startIndex) % EncodeConstants.PADDING;
         if (paddingRemainder != 0) {
             input.skipBytes(EncodeConstants.PADDING - paddingRemainder);
         }
-        return builder.build();
+
+        return new ActionBuilder()
+            .setActionChoice(new SetFieldCaseBuilder()
+                .setSetFieldAction(new SetFieldActionBuilder().setMatchEntry(List.of(entry)).build())
+                .build())
+            .build();
     }
 
     @Override
index 9a03cba41c43501c800190f34394368c583e7ba2..ff477979cf17b8e6c3bb70fb123a5ff489bf204f 100644 (file)
@@ -29,14 +29,14 @@ public class OF13SetMplsTtlActionDeserializer extends AbstractActionDeserializer
 
     @Override
     public Action deserialize(final ByteBuf input) {
-        final ActionBuilder builder = new ActionBuilder();
         input.skipBytes(2 * Short.BYTES);
-        SetMplsTtlCaseBuilder caseBuilder = new SetMplsTtlCaseBuilder();
-        SetMplsTtlActionBuilder actionBuilder = new SetMplsTtlActionBuilder();
-        actionBuilder.setMplsTtl(readUint8(input));
-        caseBuilder.setSetMplsTtlAction(actionBuilder.build());
-        builder.setActionChoice(caseBuilder.build());
+        final var ttl = readUint8(input);
         input.skipBytes(ActionConstants.SET_MPLS_TTL_PADDING);
-        return builder.build();
+
+        return new ActionBuilder()
+            .setActionChoice(new SetMplsTtlCaseBuilder()
+                .setSetMplsTtlAction(new SetMplsTtlActionBuilder().setMplsTtl(ttl).build())
+                .build())
+            .build();
     }
 }
index cdf96f48e1ff9fcc8340f03488a3a087ea8e63d8..c55792271989535249f08e3bce7b47be38090b96 100644 (file)
@@ -29,14 +29,14 @@ public class OF13SetNwTtlActionDeserializer extends AbstractActionDeserializer<S
 
     @Override
     public Action deserialize(final ByteBuf input) {
-        final ActionBuilder builder = new ActionBuilder();
         input.skipBytes(2 * Short.BYTES);
-        SetNwTtlCaseBuilder caseBuilder = new SetNwTtlCaseBuilder();
-        SetNwTtlActionBuilder actionBuilder = new SetNwTtlActionBuilder();
-        actionBuilder.setNwTtl(readUint8(input));
-        caseBuilder.setSetNwTtlAction(actionBuilder.build());
-        builder.setActionChoice(caseBuilder.build());
+        final var ttl = readUint8(input);
         input.skipBytes(ActionConstants.SET_NW_TTL_PADDING);
-        return builder.build();
+
+        return new ActionBuilder()
+            .setActionChoice(new SetNwTtlCaseBuilder()
+                .setSetNwTtlAction(new SetNwTtlActionBuilder().setNwTtl(ttl).build())
+                .build())
+            .build();
     }
 }
index acb14c601325d7be576c86e9b1a63ed89dddec7a..419ccd5e547b941beb1f3c63f6cfb88412a9e2c6 100644 (file)
@@ -28,13 +28,12 @@ public class OF13SetQueueActionDeserializer extends AbstractActionDeserializer<S
 
     @Override
     public Action deserialize(final ByteBuf input) {
-        final ActionBuilder builder = new ActionBuilder();
         input.skipBytes(2 * Short.BYTES);
-        SetQueueCaseBuilder caseBuilder = new SetQueueCaseBuilder();
-        SetQueueActionBuilder actionBuilder = new SetQueueActionBuilder();
-        actionBuilder.setQueueId(readUint32(input));
-        caseBuilder.setSetQueueAction(actionBuilder.build());
-        builder.setActionChoice(caseBuilder.build());
-        return builder.build();
+
+        return new ActionBuilder()
+            .setActionChoice(new SetQueueCaseBuilder()
+                .setSetQueueAction(new SetQueueActionBuilder().setQueueId(readUint32(input)).build())
+                .build())
+            .build();
     }
 }