Make VersionAssignableFactory implement OFDeserializer 91/92391/12
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 2 Sep 2020 17:40:10 +0000 (19:40 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 18 Sep 2020 05:58:41 +0000 (07:58 +0200)
All subclasses are implementing OFSerializer, hence it makes sense
to encode this in the base class. This ends up sharing the offset
of the implementation.

JIRA: OPNFLWPLUG-1102
Change-Id: I53342f0f0ec5ffe37440ee29f6e06c20be5add5d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierInputMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/BarrierReplyMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoReplyMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/EchoRequestMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetConfigInputMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/GetConfigReplyMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/HelloMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/SetConfigInputMessageFactory.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/VersionAssignableFactory.java

index 04878ac6492865ebbb5768cd228c1d56838b1a81..1260d760f95a25ffbd34b5337d16c4e00faa2176 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierInputBuilder;
@@ -20,10 +19,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * OF protocol versions: 1.0, 1.3, 1.4, 1.5.
  * @author giuseppex.petralia@intel.com
  */
-public class BarrierInputMessageFactory extends VersionAssignableFactory implements OFDeserializer<BarrierInput> {
-
+public class BarrierInputMessageFactory extends VersionAssignableFactory<BarrierInput> {
     @Override
-    public BarrierInput deserialize(ByteBuf rawMessage) {
+    public BarrierInput deserialize(final ByteBuf rawMessage) {
         return new BarrierInputBuilder()
                 .setVersion(getVersion())
                 .setXid(readUint32(rawMessage))
index 0945f0b00e32b9936f305e3ff14c2d736fb1a974..d69cfa33ef4d26e8515607f153173f77c7044c09 100644 (file)
@@ -5,13 +5,11 @@
  * 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.deserialization.factories;
 
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.BarrierOutputBuilder;
@@ -22,10 +20,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author michal.polkorab
  * @author timotej.kubas
  */
-public class BarrierReplyMessageFactory extends VersionAssignableFactory implements OFDeserializer<BarrierOutput> {
-
+public class BarrierReplyMessageFactory extends VersionAssignableFactory<BarrierOutput> {
     @Override
-    public BarrierOutput deserialize(ByteBuf rawMessage) {
+    public BarrierOutput deserialize(final ByteBuf rawMessage) {
         return new BarrierOutputBuilder()
                 .setVersion(getVersion())
                 .setXid(readUint32(rawMessage))
index c8aa2369aa22beba60a8f27d3c94483046d18a19..49e558b5212dc13b97db683245e8389a6d8d2080 100644 (file)
@@ -5,13 +5,11 @@
  * 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.deserialization.factories;
 
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoOutputBuilder;
@@ -22,10 +20,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author michal.polkorab
  * @author timotej.kubas
  */
-public class EchoReplyMessageFactory extends VersionAssignableFactory implements OFDeserializer<EchoOutput> {
-
+public class EchoReplyMessageFactory extends VersionAssignableFactory<EchoOutput> {
     @Override
-    public EchoOutput deserialize(ByteBuf rawMessage) {
+    public EchoOutput deserialize(final ByteBuf rawMessage) {
         EchoOutputBuilder builder = new EchoOutputBuilder();
         builder.setVersion(getVersion());
         builder.setXid(readUint32(rawMessage));
@@ -37,5 +34,4 @@ public class EchoReplyMessageFactory extends VersionAssignableFactory implements
         }
         return builder.build();
     }
-
 }
index 3df9e6049dae542f6dcc64a39ae60cb0a8e790fc..c5ecf26f5f4c177117a362a5ea5f4faeb489042d 100644 (file)
@@ -5,13 +5,11 @@
  * 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.deserialization.factories;
 
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.EchoRequestMessageBuilder;
@@ -22,10 +20,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author michal.polkorab
  * @author timotej.kubas
  */
-public class EchoRequestMessageFactory extends VersionAssignableFactory implements OFDeserializer<EchoRequestMessage> {
-
+public class EchoRequestMessageFactory extends VersionAssignableFactory<EchoRequestMessage> {
     @Override
-    public EchoRequestMessage deserialize(ByteBuf rawMessage) {
+    public EchoRequestMessage deserialize(final ByteBuf rawMessage) {
         EchoRequestMessageBuilder builder = new EchoRequestMessageBuilder();
         builder.setVersion(getVersion());
         builder.setXid(readUint32(rawMessage));
index f2e7e08a6f801d7cb422f5db3e9ad86e21e057e8..c13ee8f179d8621280f96dc26287bf9b1f563d64 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigInputBuilder;
@@ -20,9 +19,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * OF protocol versions: 1.0, 1.3, 1.4, 1.5.
  * @author giuseppex.petralia@intel.com
  */
-public class GetConfigInputMessageFactory extends VersionAssignableFactory implements OFDeserializer<GetConfigInput> {
+public class GetConfigInputMessageFactory extends VersionAssignableFactory<GetConfigInput> {
     @Override
-    public GetConfigInput deserialize(ByteBuf rawMessage) {
+    public GetConfigInput deserialize(final ByteBuf rawMessage) {
         return new GetConfigInputBuilder()
                 .setVersion(getVersion())
                 .setXid(readUint32(rawMessage))
index f8e4bcc98dfbe4b7e0004340f4a07eb0f486906d..463f88aa002572af32bec1e19241ff69da68a4b2 100644 (file)
@@ -11,7 +11,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.SwitchConfigFlag;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetConfigOutput;
@@ -23,10 +22,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author michal.polkorab
  * @author timotej.kubas
  */
-public class GetConfigReplyMessageFactory extends VersionAssignableFactory implements OFDeserializer<GetConfigOutput> {
+public class GetConfigReplyMessageFactory extends VersionAssignableFactory<GetConfigOutput> {
 
     @Override
-    public GetConfigOutput deserialize(ByteBuf rawMessage) {
+    public GetConfigOutput deserialize(final ByteBuf rawMessage) {
         GetConfigOutputBuilder builder = new GetConfigOutputBuilder();
         builder.setVersion(getVersion());
         builder.setXid(readUint32(rawMessage));
index 9627cb9252fae1b59a58c51445621bc47521c825..b60574b3eda9f77402551ac0847f17d4367cd53a 100644 (file)
@@ -13,7 +13,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 import io.netty.buffer.ByteBuf;
 import java.util.ArrayList;
 import java.util.List;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.HelloElementType;
@@ -28,12 +27,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @author michal.polkorab
  * @author timotej.kubas
  */
-public class HelloMessageFactory extends VersionAssignableFactory implements OFDeserializer<HelloMessage> {
-
+public class HelloMessageFactory extends VersionAssignableFactory<HelloMessage> {
     private static final byte HELLO_ELEMENT_HEADER_SIZE = 4;
 
     @Override
-    public HelloMessage deserialize(ByteBuf rawMessage) {
+    public HelloMessage deserialize(final ByteBuf rawMessage) {
         HelloMessageBuilder builder = new HelloMessageBuilder();
         builder.setVersion(getVersion());
         builder.setXid(readUint32(rawMessage));
@@ -43,7 +41,7 @@ public class HelloMessageFactory extends VersionAssignableFactory implements OFD
         return builder.build();
     }
 
-    private static List<Elements> readElement(ByteBuf input) {
+    private static List<Elements> readElement(final ByteBuf input) {
         List<Elements> elementsList = new ArrayList<>();
         while (input.readableBytes() > 0) {
             ElementsBuilder elementsBuilder = new ElementsBuilder();
@@ -68,7 +66,7 @@ public class HelloMessageFactory extends VersionAssignableFactory implements OFD
         return elementsList;
     }
 
-    private static List<Boolean> readVersionBitmap(int[] input) {
+    private static List<Boolean> readVersionBitmap(final int[] input) {
         List<Boolean> versionBitmapList = new ArrayList<>();
         for (int mask : input) {
             for (int j = 0; j < Integer.SIZE; j++) {
index ad448d1594cc0b883e21032491cfd7eab4370862..088586cc1bdac7727cf2ffc56caea5be14cf2f6e 100644 (file)
@@ -11,7 +11,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.openflowjava.protocol.impl.util.VersionAssignableFactory;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.SwitchConfigFlag;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.SetConfigInput;
@@ -22,10 +21,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * OF protocol versions: 1.0, 1.3, 1.4, 1.5.
  * @author giuseppex.petralia@intel.com
  */
-public class SetConfigInputMessageFactory extends VersionAssignableFactory implements OFDeserializer<SetConfigInput> {
-
+public class SetConfigInputMessageFactory extends VersionAssignableFactory<SetConfigInput> {
     @Override
-    public SetConfigInput deserialize(ByteBuf rawMessage) {
+    public SetConfigInput deserialize(final ByteBuf rawMessage) {
         SetConfigInputBuilder builder = new SetConfigInputBuilder();
         builder.setVersion(getVersion());
         builder.setXid(readUint32(rawMessage));
@@ -33,5 +31,4 @@ public class SetConfigInputMessageFactory extends VersionAssignableFactory imple
         builder.setMissSendLen(readUint16(rawMessage));
         return builder.build();
     }
-
 }
\ No newline at end of file
index c6286c938e1b1d2388609886bbca50eae97a0ea7..e339c63180609f4feb478a97eb42350ab6ff4471 100644 (file)
@@ -5,15 +5,16 @@
  * 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.util;
 
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
+import org.opendaylight.yangtools.yang.binding.DataContainer;
 
 /**
  * Abstract factory class to support OF protocol version assigning and reading.
  */
-public abstract class VersionAssignableFactory {
+public abstract class VersionAssignableFactory<T extends DataContainer> implements OFDeserializer<T> {
     private Short version;
 
     /**