Refactor AbstractOxmMatchEntryDeserializer 94/92394/14
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 2 Sep 2020 20:02:28 +0000 (22:02 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 18 Sep 2020 05:58:41 +0000 (07:58 +0200)
All subclassses of AbstractOxmMatchEntryDeserializer follow the same
deserializer pattern. Make sure we eliminate useless getters and
streamline the implementation accordingly.

JIRA: OPNFLWPLUG-1102
Change-Id: I2417ce9f58f7f97acfab91a93d4c346ece3b1208
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
44 files changed:
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/AbstractOxmMatchEntryDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmArpOpDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmArpShaDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmArpSpaDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmArpThaDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmArpTpaDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmEthDstDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmEthSrcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmEthTypeDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIcmpv4CodeDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIcmpv4TypeDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIcmpv6CodeDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIcmpv6TypeDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmInPhyPortDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmInPortDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpDscpDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpEcnDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpProtoDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv4DstDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv4SrcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6DstDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6ExtHdrDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6FlabelDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6NdSllDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6NdTargetDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6NdTllDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmIpv6SrcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmMetadataDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmMplsBosDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmMplsLabelDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmMplsTcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmPacketTypeDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmPbbIsidDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmSctpDstDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmSctpSrcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmTcpDstDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmTcpSrcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmTunnelIdDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmUdpDstDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmUdpSrcDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmVlanPcpDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/OxmVlanVidDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/ext/AbstractOxmExperimenterMatchEntryDeserializer.java
openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/match/ext/OnfOxmTcpFlagsDeserializer.java

index 0eacfcdcbf167a94f5afef9c78b8b4ebf7515dcc..eb85ac9ac746f13f267b0f4ff693b65a53d271a5 100644 (file)
@@ -7,10 +7,14 @@
  */
 package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
+import static java.util.Objects.requireNonNull;
+
 import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderDeserializer;
 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
@@ -22,41 +26,46 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  */
 public abstract class AbstractOxmMatchEntryDeserializer
         implements HeaderDeserializer<MatchEntry>, OFDeserializer<MatchEntry> {
+    private final @NonNull Class<? extends OxmClassBase> oxmClass;
+    private final @NonNull Class<? extends MatchField> oxmField;
+
+    protected AbstractOxmMatchEntryDeserializer(final Class<? extends OxmClassBase> oxmClass,
+            final Class<? extends MatchField> oxmField) {
+        this.oxmClass = requireNonNull(oxmClass);
+        this.oxmField = requireNonNull(oxmField);
+    }
+
+    protected AbstractOxmMatchEntryDeserializer(final Class<? extends MatchField> oxmField) {
+        this(OpenflowBasicClass.class, oxmField);
+    }
+
     @Override
-    public MatchEntry deserializeHeader(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
+    public final MatchEntry deserialize(final ByteBuf input) {
+        final MatchEntryBuilder builder = processHeader(input);
+        deserialize(input, builder);
         return builder.build();
     }
 
-    /**
-     * Returns the oxm_field class.
-     */
-    protected abstract Class<? extends MatchField> getOxmField();
+    protected abstract void deserialize(ByteBuf input, MatchEntryBuilder builder);
 
-    /**
-     * Returns the oxm_class class.
-     */
-    protected abstract Class<? extends OxmClassBase> getOxmClass();
+    @Override
+    public final MatchEntry deserializeHeader(final ByteBuf input) {
+        return processHeader(input).build();
+    }
 
     /**
      * Prepares match entry header - sets oxm_class, oxm_field, hasMask
      *  + sets the buffer.readerIndex() to the end of match entry
      *  - where augmentation starts.
      *
-     * @param oxmClass oxm class type
-     * @param oxmField oxm field type
      * @param input input bytebuf
      * @return MatchEntriesBuilder which can be filled with MatchEntry augmentation
      */
-    protected MatchEntryBuilder processHeader(final Class<? extends OxmClassBase> oxmClass,
-            final Class<? extends MatchField> oxmField, final ByteBuf input) {
-        MatchEntryBuilder builder = new MatchEntryBuilder();
-        builder.setOxmClass(oxmClass);
+    protected final MatchEntryBuilder processHeader(final ByteBuf input) {
         // skip oxm_class (provided)
         input.skipBytes(Short.BYTES);
-        builder.setOxmMatchField(oxmField);
-        boolean hasMask = (input.readUnsignedByte() & 1) != 0;
-        builder.setHasMask(hasMask);
+        final MatchEntryBuilder builder = new MatchEntryBuilder().setOxmClass(oxmClass).setOxmMatchField(oxmField)
+                .setHasMask((input.readUnsignedByte() & 1) != 0);
         // skip match entry length - not needed
         input.skipBytes(Byte.BYTES);
         return builder;
index da842897a040a6c754cd4fe7468c659e1fb9f92a..9f10d0c9080a46b2376f3d9d8637fc931673458b 100644 (file)
@@ -11,10 +11,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpOp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpOpCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.op._case.ArpOpBuilder;
@@ -25,27 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmArpOpDeserializer extends AbstractOxmMatchEntryDeserializer {
-
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addArpOpValue(input, builder);
-        return builder.build();
+    public OxmArpOpDeserializer() {
+        super(ArpOp.class);
     }
 
-    private static void addArpOpValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new ArpOpCaseBuilder()
             .setArpOp(new ArpOpBuilder().setOpCode(readUint16(input)).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return ArpOp.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index f5b43bab049ba5df73611a20526f5f89ea39abd6..0750fd5eab461b93a7c93b419ee1f206a5c95e3d 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSha;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpShaCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.sha._case.ArpShaBuilder;
@@ -24,31 +20,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmArpShaDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addArpShaValue(input, builder);
-        return builder.build();
+    public OxmArpShaDeserializer() {
+        super(ArpSha.class);
     }
 
-    private static void addArpShaValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        ArpShaCaseBuilder caseBuilder = new ArpShaCaseBuilder();
-        ArpShaBuilder shaBuilder = new ArpShaBuilder();
-        shaBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final ArpShaBuilder shaBuilder = new ArpShaBuilder()
+                .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
         if (builder.isHasMask()) {
             shaBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
         }
-        caseBuilder.setArpSha(shaBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return ArpSha.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new ArpShaCaseBuilder().setArpSha(shaBuilder.build()).build());
     }
 }
index 599e94ae53033f507e93a6ee077ea031bb0890e1..b334c92c6d006d2e9e98a9d9c41ba611997995fb 100644 (file)
@@ -11,10 +11,6 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSpa;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpSpaCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.spa._case.ArpSpaBuilder;
@@ -25,31 +21,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmArpSpaDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addArpSpaValue(input, builder);
-        return builder.build();
+    public OxmArpSpaDeserializer() {
+        super(ArpSpa.class);
     }
 
-    private static void addArpSpaValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        ArpSpaCaseBuilder caseBuilder = new ArpSpaCaseBuilder();
-        ArpSpaBuilder arpBuilder = new ArpSpaBuilder();
-        arpBuilder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final ArpSpaBuilder arpBuilder = new ArpSpaBuilder()
+                .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
         if (builder.isHasMask()) {
             arpBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
         }
-        caseBuilder.setArpSpa(arpBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return ArpSpa.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new ArpSpaCaseBuilder().setArpSpa(arpBuilder.build()).build());
     }
 }
index 51984b9fa876d4a6091ecae10f6b58087060d1ac..722b1460bfe64ddc22f23d0a16a5d33fde4f8eeb 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTha;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpThaCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tha._case.ArpThaBuilder;
@@ -23,32 +19,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  *
  * @author michal.polkorab
  */
-public class OxmArpThaDeserializer  extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addArpThaValue(input, builder);
-        return builder.build();
+public class OxmArpThaDeserializer extends AbstractOxmMatchEntryDeserializer {
+    public OxmArpThaDeserializer() {
+        super(ArpTha.class);
     }
 
-    private static void addArpThaValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        ArpThaCaseBuilder caseBuilder = new ArpThaCaseBuilder();
-        ArpThaBuilder thaBuilder = new ArpThaBuilder();
-        thaBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final ArpThaBuilder thaBuilder = new ArpThaBuilder()
+                .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
         if (builder.isHasMask()) {
             thaBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
         }
-        caseBuilder.setArpTha(thaBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return ArpTha.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new ArpThaCaseBuilder().setArpTha(thaBuilder.build()).build());
     }
 }
index b527cf7cbaba0089a93e7b94031b61244f6d028b..3f92e102d5f72433036271e56cb01a467af7c3c0 100644 (file)
@@ -11,10 +11,6 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTpa;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpTpaCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tpa._case.ArpTpaBuilder;
@@ -25,31 +21,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmArpTpaDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addArpTpaValue(input, builder);
-        return builder.build();
+    public OxmArpTpaDeserializer() {
+        super(ArpTpa.class);
     }
 
-    private static void addArpTpaValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        ArpTpaCaseBuilder caseBuilder = new ArpTpaCaseBuilder();
-        ArpTpaBuilder arpBuilder = new ArpTpaBuilder();
-        arpBuilder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final ArpTpaBuilder arpBuilder = new ArpTpaBuilder()
+                .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
         if (builder.isHasMask()) {
             arpBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
         }
-        caseBuilder.setArpTpa(arpBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return ArpTpa.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new ArpTpaCaseBuilder().setArpTpa(arpBuilder.build()).build());
     }
 }
index f591bf54ca0e57a60c888b031b0f59315232b369..be46c2348d57987b7e5f8fc2d3183524a0b63ba0 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.dst._case.EthDstBuilder;
@@ -24,32 +20,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmEthDstDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addEthDstValue(input, builder);
-        return builder.build();
+    public OxmEthDstDeserializer() {
+        super(EthDst.class);
     }
 
-    private static void addEthDstValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        EthDstCaseBuilder caseBuilder = new EthDstCaseBuilder();
-        EthDstBuilder ethBuilder = new EthDstBuilder();
-        ethBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final EthDstBuilder ethBuilder = new EthDstBuilder()
+                .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
         if (builder.isHasMask()) {
             ethBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
         }
-        caseBuilder.setEthDst(ethBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return EthDst.class;
+        builder.setMatchEntryValue(new EthDstCaseBuilder().setEthDst(ethBuilder.build()).build());
     }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
-
 }
index 3c029665082f8c98c0802f415d453bb28a2fe615..a3ff974c672d72925963265a9d26af2e0e1d21b8 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.src._case.EthSrcBuilder;
@@ -24,31 +20,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmEthSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addEthSrcValue(input, builder);
-        return builder.build();
+    public OxmEthSrcDeserializer() {
+        super(EthSrc.class);
     }
 
-    private static void addEthSrcValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        EthSrcCaseBuilder caseBuilder = new EthSrcCaseBuilder();
-        EthSrcBuilder ethBuilder = new EthSrcBuilder();
-        ethBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final EthSrcBuilder ethBuilder = new EthSrcBuilder()
+                .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
         if (builder.isHasMask()) {
             ethBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
         }
-        caseBuilder.setEthSrc(ethBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return EthSrc.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new EthSrcCaseBuilder().setEthSrc(ethBuilder.build()).build());
     }
 }
index be08cfa89911cebb8682893672880f4609c5eb88..7ce3e307d83d5656a4dbe26ad14f0211980316f8 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.type._case.EthTypeBuilder;
@@ -25,26 +21,14 @@ import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
  * @author michal.polkorab
  */
 public class OxmEthTypeDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addEthTypeValue(input, builder);
-        return builder.build();
+    public OxmEthTypeDeserializer() {
+        super(EthType.class);
     }
 
-    private static void addEthTypeValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new EthTypeCaseBuilder()
             .setEthType(new EthTypeBuilder().setEthType(new EtherType(ByteBufUtils.readUint16(input))).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return EthType.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index 60b79578eb466cea5ccfd1771fc8a18eea8a65d1..79da95b532feed7cf31eb505b2086165053616ce 100644 (file)
@@ -11,10 +11,7 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv4Code;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv4CodeCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv4.code._case.Icmpv4CodeBuilder;
 
@@ -24,22 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIcmpv4CodeDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new Icmpv4CodeCaseBuilder()
-                    .setIcmpv4Code(new Icmpv4CodeBuilder().setIcmpv4Code(readUint8(input)).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Icmpv4Code.class;
+    public OxmIcmpv4CodeDeserializer() {
+        super(Icmpv4Code.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Icmpv4CodeCaseBuilder()
+            .setIcmpv4Code(new Icmpv4CodeBuilder().setIcmpv4Code(readUint8(input)).build())
+            .build());
     }
 }
index 50a605b5fc2c441c3956f538d9414bd5d6f4eb9f..0fa682c77c16581cba85065802d5b5dac6b82665 100644 (file)
@@ -11,10 +11,7 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv4Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv4TypeCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv4.type._case.Icmpv4TypeBuilder;
 
@@ -24,22 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIcmpv4TypeDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new Icmpv4TypeCaseBuilder()
-                    .setIcmpv4Type(new Icmpv4TypeBuilder().setIcmpv4Type(readUint8(input)).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Icmpv4Type.class;
+    public OxmIcmpv4TypeDeserializer() {
+        super(Icmpv4Type.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Icmpv4TypeCaseBuilder()
+            .setIcmpv4Type(new Icmpv4TypeBuilder().setIcmpv4Type(readUint8(input)).build())
+            .build());
     }
 }
index 465cd12f2dd0bf15668b7f799642c06bfaeee647..080cf79e492de0d2bb2589e4e8c25c7a01c595e4 100644 (file)
@@ -11,10 +11,7 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv6Code;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv6CodeCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv6.code._case.Icmpv6CodeBuilder;
 
@@ -24,22 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIcmpv6CodeDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new Icmpv6CodeCaseBuilder()
-                    .setIcmpv6Code(new Icmpv6CodeBuilder().setIcmpv6Code(readUint8(input)).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Icmpv6Code.class;
+    public OxmIcmpv6CodeDeserializer() {
+        super(Icmpv6Code.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Icmpv6CodeCaseBuilder()
+            .setIcmpv6Code(new Icmpv6CodeBuilder().setIcmpv6Code(readUint8(input)).build())
+            .build());
     }
 }
index 232afa215a4d09b58ac791b9a57dc1b0ff815b08..3b9058de3f75b676a4137803b0e4e498190f3c83 100644 (file)
@@ -11,10 +11,7 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv6Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv6TypeCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv6.type._case.Icmpv6TypeBuilder;
 
@@ -24,22 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIcmpv6TypeDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new Icmpv6TypeCaseBuilder()
-                    .setIcmpv6Type(new Icmpv6TypeBuilder().setIcmpv6Type(readUint8(input)).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Icmpv6Type.class;
+    public OxmIcmpv6TypeDeserializer() {
+        super(Icmpv6Type.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Icmpv6TypeCaseBuilder()
+            .setIcmpv6Type(new Icmpv6TypeBuilder().setIcmpv6Type(readUint8(input)).build())
+            .build());
     }
 }
index 12e7653ac28c74c94ec5ef2fa686cae72c6d387d..9d71aa9a54a772804bec6db96e586b8b286a53d9 100644 (file)
@@ -12,10 +12,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPhyPort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.in.phy.port._case.InPhyPortBuilder;
@@ -26,26 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmInPhyPortDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addInPhyPortValue(input, builder);
-        return builder.build();
+    public OxmInPhyPortDeserializer() {
+        super(InPhyPort.class);
     }
 
-    private static void addInPhyPortValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new InPhyPortCaseBuilder()
             .setInPhyPort(new InPhyPortBuilder().setPortNumber(new PortNumber(readUint32(input))).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return InPhyPort.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index a1fb419e86131bc75d29b572e1339ef857f0ec4a..74b3deaae698d30e26c7e864547f59953e9d1da0 100644 (file)
@@ -12,10 +12,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPortCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.in.port._case.InPortBuilder;
@@ -26,26 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmInPortDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addInPortValue(input, builder);
-        return builder.build();
+    public OxmInPortDeserializer() {
+        super(InPort.class);
     }
 
-    private static void addInPortValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new InPortCaseBuilder()
             .setInPort(new InPortBuilder().setPortNumber(new PortNumber(readUint32(input))).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return InPort.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index 0fbc9f05a7cb51126a1208c41f8237258a9730d8..c3c13138087e127134170133d46b21ea0057e3cd 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpDscp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpDscpCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.dscp._case.IpDscpBuilder;
@@ -25,26 +21,14 @@ import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
  * @author michal.polkorab
  */
 public class OxmIpDscpDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpDscpValue(input, builder);
-        return builder.build();
+    public OxmIpDscpDeserializer() {
+        super(IpDscp.class);
     }
 
-    private static void addIpDscpValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new IpDscpCaseBuilder()
             .setIpDscp(new IpDscpBuilder().setDscp(new Dscp(ByteBufUtils.readUint8(input))).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return IpDscp.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index ea793c1f34623ad86a4dd5b4e645881e02ccfc6d..2b464a90e696b9a4a795ced4f176725435b550fe 100644 (file)
@@ -11,10 +11,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpEcn;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpEcnCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.ecn._case.IpEcnBuilder;
@@ -25,26 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpEcnDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpEcnValue(input, builder);
-        return builder.build();
+    public OxmIpEcnDeserializer() {
+        super(IpEcn.class);
     }
 
-    private static void addIpEcnValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new IpEcnCaseBuilder()
             .setIpEcn(new IpEcnBuilder().setEcn(readUint8(input)).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return IpEcn.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index 53fc896453b0ed871f49aafca9ae59b95f6c3b42..58cf2912c2ac660919f5df53b68942149977c6b8 100644 (file)
@@ -11,10 +11,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpProto;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpProtoCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.proto._case.IpProtoBuilder;
@@ -25,26 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpProtoDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpProtoValue(input, builder);
-        return builder.build();
+    public OxmIpProtoDeserializer() {
+        super(IpProto.class);
     }
 
-    private static void addIpProtoValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new IpProtoCaseBuilder()
             .setIpProto(new IpProtoBuilder().setProtocolNumber(readUint8(input)).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return IpProto.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index b889c53002b7f64399c9afd648471a6ce98ef987..48c433cc01427a21ee103bc349ea01169d2b8fc2 100644 (file)
@@ -11,10 +11,6 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Dst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4DstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv4.dst._case.Ipv4DstBuilder;
@@ -25,31 +21,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv4DstDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv4DstValue(input, builder);
-        return builder.build();
+    public OxmIpv4DstDeserializer() {
+        super(Ipv4Dst.class);
     }
 
-    private static void addIpv4DstValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv4DstCaseBuilder caseBuilder = new Ipv4DstCaseBuilder();
-        Ipv4DstBuilder ipv4Builder = new Ipv4DstBuilder();
-        ipv4Builder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Ipv4DstBuilder ipv4Builder = new Ipv4DstBuilder()
+                .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
         if (builder.isHasMask()) {
             ipv4Builder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
         }
-        caseBuilder.setIpv4Dst(ipv4Builder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv4Dst.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new Ipv4DstCaseBuilder().setIpv4Dst(ipv4Builder.build()).build());
     }
 }
index d19bf1635162fbd2536b03ed65c2cb87f54c7f84..55fe2c86ae22e0fd7de687f9f5d568b4d24fe8fd 100644 (file)
@@ -11,10 +11,6 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Src;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4SrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv4.src._case.Ipv4SrcBuilder;
@@ -25,31 +21,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv4SrcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv4SrcValue(input, builder);
-        return builder.build();
+    public OxmIpv4SrcDeserializer() {
+        super(Ipv4Src.class);
     }
 
-    private static void addIpv4SrcValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv4SrcCaseBuilder caseBuilder = new Ipv4SrcCaseBuilder();
-        Ipv4SrcBuilder ipv4Builder = new Ipv4SrcBuilder();
-        ipv4Builder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Ipv4SrcBuilder ipv4Builder = new Ipv4SrcBuilder()
+                .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
         if (builder.isHasMask()) {
             ipv4Builder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
         }
-        caseBuilder.setIpv4Src(ipv4Builder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv4Src.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new Ipv4SrcCaseBuilder().setIpv4Src(ipv4Builder.build()).build());
     }
 }
index 306246033db1e8ed1fb9c3f02fe94dbeafcd8ff8..95cc3e1813124dd596c663ec328f33476f382b96 100644 (file)
@@ -11,10 +11,6 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Dst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6DstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.dst._case.Ipv6DstBuilder;
@@ -25,32 +21,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6DstDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6DstValue(input, builder);
-        return builder.build();
+    public OxmIpv6DstDeserializer() {
+        super(Ipv6Dst.class);
     }
 
-    private static void addIpv6DstValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6DstCaseBuilder caseBuilder = new Ipv6DstCaseBuilder();
-        Ipv6DstBuilder ipv6Builder = new Ipv6DstBuilder();
-        ipv6Builder.setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Ipv6DstBuilder ipv6Builder = new Ipv6DstBuilder()
+                .setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
         if (builder.isHasMask()) {
-            ipv6Builder.setMask(OxmDeserializerHelper.convertMask(
-                    input, EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
+            ipv6Builder.setMask(OxmDeserializerHelper.convertMask(input,
+                EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
         }
-        caseBuilder.setIpv6Dst(ipv6Builder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6Dst.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new Ipv6DstCaseBuilder().setIpv6Dst(ipv6Builder.build()).build());
     }
 }
index 7dd6fda9ef53699b6f36b08f004fa2237aa5808c..22e6c99f23493e22e46b6c1ab4a8f893cd95e46a 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Ipv6ExthdrFlags;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Exthdr;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6ExthdrCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.exthdr._case.Ipv6ExthdrBuilder;
@@ -24,22 +20,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6ExtHdrDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6ExtHdrValue(input, builder);
-        return builder.build();
+    public OxmIpv6ExtHdrDeserializer() {
+        super(Ipv6Exthdr.class);
     }
 
-    private static void addIpv6ExtHdrValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6ExthdrCaseBuilder caseBuilder = new Ipv6ExthdrCaseBuilder();
-        Ipv6ExthdrBuilder extHdrBuilder = new Ipv6ExthdrBuilder();
-        extHdrBuilder.setPseudoField(convertPseudofields(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Ipv6ExthdrBuilder extHdrBuilder = new Ipv6ExthdrBuilder()
+                .setPseudoField(convertPseudofields(input));
         if (builder.isHasMask()) {
             extHdrBuilder.setMask(OxmDeserializerHelper.convertMask(input, Short.BYTES));
         }
-        caseBuilder.setIpv6Exthdr(extHdrBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
+        builder.setMatchEntryValue(new Ipv6ExthdrCaseBuilder().setIpv6Exthdr(extHdrBuilder.build()).build());
     }
 
     private static Ipv6ExthdrFlags convertPseudofields(final ByteBuf input) {
@@ -55,14 +47,4 @@ public class OxmIpv6ExtHdrDeserializer extends AbstractOxmMatchEntryDeserializer
         final Boolean unseq = (bitmap & 1 << 8) != 0;
         return new Ipv6ExthdrFlags(auth, dest, esp, frag, hop, nonext, router, unrep, unseq);
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6Exthdr.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index 62720473eccd6aee79226a51c9080b0103f18fce..1001339324f42b3cca226f96feca1d92affd3fd6 100644 (file)
@@ -12,10 +12,6 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6FlowLabel;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Flabel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6FlabelCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.flabel._case.Ipv6FlabelBuilder;
@@ -26,31 +22,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6FlabelDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6FlabelValue(input, builder);
-        return builder.build();
+    public OxmIpv6FlabelDeserializer() {
+        super(Ipv6Flabel.class);
     }
 
-    private static void addIpv6FlabelValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6FlabelCaseBuilder caseBuilder = new Ipv6FlabelCaseBuilder();
-        Ipv6FlabelBuilder labelBuilder = new Ipv6FlabelBuilder();
-        labelBuilder.setIpv6Flabel(new Ipv6FlowLabel(readUint32(input)));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Ipv6FlabelBuilder labelBuilder = new Ipv6FlabelBuilder()
+                .setIpv6Flabel(new Ipv6FlowLabel(readUint32(input)));
         if (builder.isHasMask()) {
             labelBuilder.setMask(OxmDeserializerHelper.convertMask(input, Integer.BYTES));
         }
-        caseBuilder.setIpv6Flabel(labelBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6Flabel.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new Ipv6FlabelCaseBuilder().setIpv6Flabel(labelBuilder.build()).build());
     }
 }
index 8e997e88d9c67ef982eb33956aca83f7c8dedf4d..8bb8d0566ccf589ca6a1e18573963ecc68fe2d9b 100644 (file)
@@ -9,10 +9,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdSll;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdSllCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.sll._case.Ipv6NdSllBuilder;
@@ -23,29 +19,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6NdSllDeserializer extends AbstractOxmMatchEntryDeserializer {
-
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6NdSllValue(input, builder);
-        return builder.build();
-    }
-
-    private static void addIpv6NdSllValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6NdSllCaseBuilder caseBuilder = new Ipv6NdSllCaseBuilder();
-        Ipv6NdSllBuilder ndBuilder = new Ipv6NdSllBuilder();
-        ndBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
-        caseBuilder.setIpv6NdSll(ndBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6NdSll.class;
+    public OxmIpv6NdSllDeserializer() {
+        super(Ipv6NdSll.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Ipv6NdSllCaseBuilder()
+            .setIpv6NdSll(new Ipv6NdSllBuilder().setMacAddress(OxmDeserializerHelper.convertMacAddress(input)).build())
+            .build());
     }
 }
index f8f49bcaf60c2bcb0f8b8d954b63361092fef89d..c36c3378d3c395560f5e8385f26784871f8d7657 100644 (file)
@@ -10,10 +10,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdTarget;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTargetCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.target._case.Ipv6NdTargetBuilder;
@@ -24,28 +20,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6NdTargetDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6NdTargetValue(input, builder);
-        return builder.build();
-    }
-
-    private static void addIpv6NdTargetValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6NdTargetCaseBuilder caseBuilder = new Ipv6NdTargetCaseBuilder();
-        Ipv6NdTargetBuilder ipv6Builder = new Ipv6NdTargetBuilder();
-        ipv6Builder.setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
-        caseBuilder.setIpv6NdTarget(ipv6Builder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6NdTarget.class;
+    public OxmIpv6NdTargetDeserializer() {
+        super(Ipv6NdTarget.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Ipv6NdTargetCaseBuilder()
+            .setIpv6NdTarget(new Ipv6NdTargetBuilder().setIpv6Address(ByteBufUtils.readIetfIpv6Address(input)).build())
+            .build());
     }
 }
index 393466823356201fa6b7dff78e2f1c7dc333ded6..f54365e2db2f692e33d082273b6bb736b8c8455c 100644 (file)
@@ -9,10 +9,6 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdTll;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTllCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.tll._case.Ipv6NdTllBuilder;
@@ -23,28 +19,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6NdTllDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6NdTllValue(input, builder);
-        return builder.build();
-    }
-
-    private static void addIpv6NdTllValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6NdTllCaseBuilder caseBuilder = new Ipv6NdTllCaseBuilder();
-        Ipv6NdTllBuilder ndBuilder = new Ipv6NdTllBuilder();
-        ndBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
-        caseBuilder.setIpv6NdTll(ndBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6NdTll.class;
+    public OxmIpv6NdTllDeserializer() {
+        super(Ipv6NdTll.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new Ipv6NdTllCaseBuilder()
+            .setIpv6NdTll(new Ipv6NdTllBuilder().setMacAddress(OxmDeserializerHelper.convertMacAddress(input)).build())
+            .build());
     }
 }
index ab94db07533682a7889acd83a3a8a3f6a5fead1b..302a83026798852ba08d567cbedb02501d11d6e8 100644 (file)
@@ -11,10 +11,6 @@ import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Src;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6SrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.src._case.Ipv6SrcBuilder;
@@ -25,32 +21,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmIpv6SrcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addIpv6SrcValue(input, builder);
-        return builder.build();
+    public OxmIpv6SrcDeserializer() {
+        super(Ipv6Src.class);
     }
 
-    private static void addIpv6SrcValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        Ipv6SrcCaseBuilder caseBuilder = new Ipv6SrcCaseBuilder();
-        Ipv6SrcBuilder ipv6Builder = new Ipv6SrcBuilder();
-        ipv6Builder.setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Ipv6SrcBuilder ipv6Builder = new Ipv6SrcBuilder()
+                .setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
         if (builder.isHasMask()) {
-            ipv6Builder.setMask(OxmDeserializerHelper.convertMask(
-                    input, EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
+            ipv6Builder.setMask(OxmDeserializerHelper.convertMask(input,
+                EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
         }
-        caseBuilder.setIpv6Src(ipv6Builder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Ipv6Src.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new Ipv6SrcCaseBuilder().setIpv6Src(ipv6Builder.build()).build());
     }
 }
index 93cb5703e5800e6e1fc4b5f7f28528b9edc17f21..120f483b55b1c5bf77d4ae87004faa910af16a2f 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MetadataCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder;
@@ -23,33 +19,19 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmMetadataDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addMetadataValue(input, builder);
-        return builder.build();
+    public OxmMetadataDeserializer() {
+        super(Metadata.class);
     }
 
-    private static void addMetadataValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        final MetadataCaseBuilder caseBuilder = new MetadataCaseBuilder();
-        MetadataBuilder metadataBuilder = new MetadataBuilder();
-        byte[] metadataBytes = new byte[Long.BYTES];
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final byte[] metadataBytes = new byte[Long.BYTES];
         input.readBytes(metadataBytes);
-        metadataBuilder.setMetadata(metadataBytes);
+
+        final MetadataBuilder metadataBuilder = new MetadataBuilder().setMetadata(metadataBytes);
         if (builder.isHasMask()) {
             metadataBuilder.setMask(OxmDeserializerHelper.convertMask(input, Long.BYTES));
         }
-        caseBuilder.setMetadata(metadataBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Metadata.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new MetadataCaseBuilder().setMetadata(metadataBuilder.build()).build());
     }
 }
index b6e4bdc902374050dca53b4ca761ae0701a85597..ee49e7881ccbf568e7e7a225de105fdb394ceacf 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsBos;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsBosCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.bos._case.MplsBosBuilder;
@@ -23,32 +19,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmMplsBosDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addMplsBosValue(input, builder);
-        return builder.build();
-    }
-
-    private static void addMplsBosValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        MplsBosCaseBuilder caseBuilder = new MplsBosCaseBuilder();
-        MplsBosBuilder bosBuilder = new MplsBosBuilder();
-        if (input.readUnsignedByte() != 0) {
-            bosBuilder.setBos(true);
-        } else {
-            bosBuilder.setBos(false);
-        }
-        caseBuilder.setMplsBos(bosBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return MplsBos.class;
+    public OxmMplsBosDeserializer() {
+        super(MplsBos.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new MplsBosCaseBuilder()
+            .setMplsBos(new MplsBosBuilder().setBos(input.readUnsignedByte() != 0).build())
+            .build());
     }
 }
index a775bd260da67b762b1d2b6c40051a7b4c53e6ed..3ef91f35b817489ffc308818e4987d273ba72a26 100644 (file)
@@ -10,11 +10,7 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsLabel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsLabelCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.label._case.MplsLabelBuilder;
@@ -25,26 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmMplsLabelDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addMplsLabelValue(input, builder);
-        return builder.build();
+    public OxmMplsLabelDeserializer() {
+        super(MplsLabel.class);
     }
 
-    private static void addMplsLabelValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new MplsLabelCaseBuilder()
             .setMplsLabel(new MplsLabelBuilder().setMplsLabel(readUint32(input)).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return MplsLabel.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index ec8d8d623b8ce21ec5f863cb1013d6a259ec484e..7f7e0184c0d6cd4c7feda82fe38723134851936f 100644 (file)
@@ -10,11 +10,7 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsTc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsTcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.tc._case.MplsTcBuilder;
@@ -25,26 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmMplsTcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addMplsTcValue(input, builder);
-        return builder.build();
+    public OxmMplsTcDeserializer() {
+        super(MplsTc.class);
     }
 
-    private static void addMplsTcValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new MplsTcCaseBuilder()
             .setMplsTc(new MplsTcBuilder().setTc(readUint8(input)).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return MplsTc.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index cad014fe0142d6509393c0155d692e98e78d7641..121cbd62a2d022cd8dd39e92ec3e68b16f3f50b8 100644 (file)
@@ -10,34 +10,20 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.PacketType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.PacketTypeCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.packet.type._case.PacketTypeBuilder;
 
 public class OxmPacketTypeDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return PacketType.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    public OxmPacketTypeDeserializer() {
+        super(PacketType.class);
     }
 
     @Override
-    public MatchEntry deserialize(final ByteBuf message) {
-        final MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), message);
-        PacketTypeCaseBuilder caseBuilder = new PacketTypeCaseBuilder();
-        PacketTypeBuilder packetTypeBuilder = new PacketTypeBuilder();
-        packetTypeBuilder.setPacketType(readUint32(message));
-        caseBuilder.setPacketType(packetTypeBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-        return builder.build();
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new PacketTypeCaseBuilder()
+            .setPacketType(new PacketTypeBuilder().setPacketType(readUint32(input)).build())
+            .build());
     }
 }
index 8a5c894cc35dbc3da6737881d545a8e550242e5a..f0ca8dae5d344ad2d2108f277205c721a275abf3 100644 (file)
@@ -9,11 +9,7 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.PbbIsid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.PbbIsidCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.pbb.isid._case.PbbIsidBuilder;
@@ -24,33 +20,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmPbbIsidDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addPbbIsidValue(input, builder);
-        return builder.build();
+    public OxmPbbIsidDeserializer() {
+        super(PbbIsid.class);
     }
 
-    private static void addPbbIsidValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        PbbIsidCaseBuilder caseBuilder = new PbbIsidCaseBuilder();
-        PbbIsidBuilder isidBuilder = new PbbIsidBuilder();
-        Integer isid = input.readUnsignedMedium();
-        isidBuilder.setIsid(isid.longValue());
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final Integer isid = input.readUnsignedMedium();
+        final PbbIsidBuilder isidBuilder = new PbbIsidBuilder()
+                .setIsid(isid.longValue());
         if (builder.isHasMask()) {
-            isidBuilder.setMask(OxmDeserializerHelper
-                    .convertMask(input, EncodeConstants.SIZE_OF_3_BYTES));
+            isidBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.SIZE_OF_3_BYTES));
         }
-        caseBuilder.setPbbIsid(isidBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return PbbIsid.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new PbbIsidCaseBuilder().setPbbIsid(isidBuilder.build()).build());
     }
 }
index bc6f932528cbadc35be659b46eb22876623c6322..664729e875713998f60db0c162943eddc5ead223 100644 (file)
@@ -11,11 +11,7 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.SctpDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpDstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.sctp.dst._case.SctpDstBuilder;
@@ -26,26 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmSctpDstDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addSctpDstValue(input, builder);
-        return builder.build();
+    public OxmSctpDstDeserializer() {
+        super(SctpDst.class);
     }
 
-    private static void addSctpDstValue(final ByteBuf input, final MatchEntryBuilder builder) {
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
         builder.setMatchEntryValue(new SctpDstCaseBuilder()
             .setSctpDst(new SctpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
             .build());
     }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return SctpDst.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
-    }
 }
index d91fe24a167867552d9a4f4c6ad19a8b41711b75..03dad82f5a698f7b8819b399fa33936a411cca19 100644 (file)
@@ -11,11 +11,8 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.SctpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpSrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.sctp.src._case.SctpSrcBuilder;
 
@@ -25,22 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmSctpSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new SctpSrcCaseBuilder()
-                    .setSctpSrc(new SctpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return SctpSrc.class;
+    public OxmSctpSrcDeserializer() {
+        super(SctpSrc.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new SctpSrcCaseBuilder()
+            .setSctpSrc(new SctpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
+            .build());
     }
 }
index f3c1f791e7df8989674e8276243735c1c6c1ee6c..2ba1ed92116a0406173be492d38ce82e16cdeadd 100644 (file)
@@ -11,11 +11,8 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpDstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tcp.dst._case.TcpDstBuilder;
 
@@ -25,22 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmTcpDstDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new TcpDstCaseBuilder()
-                    .setTcpDst(new TcpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return TcpDst.class;
+    public OxmTcpDstDeserializer() {
+        super(TcpDst.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new TcpDstCaseBuilder()
+            .setTcpDst(new TcpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
+            .build());
     }
 }
index 24fb834ed6551213fd7ac78e19f77f8bd3cc0b12..c263f48cf9a894567dfa2ef0c203a5469846fcf2 100644 (file)
@@ -11,11 +11,8 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpSrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tcp.src._case.TcpSrcBuilder;
 
@@ -25,22 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmTcpSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new TcpSrcCaseBuilder()
-                    .setTcpSrc(new TcpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return TcpSrc.class;
+    public OxmTcpSrcDeserializer() {
+        super(TcpSrc.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new TcpSrcCaseBuilder()
+            .setTcpSrc(new TcpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
+            .build());
     }
 }
index 6b5c975180ea5aba645bde59b2aba7f5cd452b2e..5038b48c5725f5719068f77288e25dfb20dbc533 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TunnelId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tunnel.id._case.TunnelIdBuilder;
@@ -23,33 +19,19 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmTunnelIdDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addTunnelIdValue(input, builder);
-        return builder.build();
+    public OxmTunnelIdDeserializer() {
+        super(TunnelId.class);
     }
 
-    private static void addTunnelIdValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        final TunnelIdCaseBuilder caseBuilder = new TunnelIdCaseBuilder();
-        TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
-        byte[] metadataBytes = new byte[Long.BYTES];
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final byte[] metadataBytes = new byte[Long.BYTES];
         input.readBytes(metadataBytes);
-        tunnelIdBuilder.setTunnelId(metadataBytes);
+        final TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder()
+                .setTunnelId(metadataBytes);
         if (builder.isHasMask()) {
             tunnelIdBuilder.setMask(OxmDeserializerHelper.convertMask(input, Long.BYTES));
         }
-        caseBuilder.setTunnelId(tunnelIdBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return TunnelId.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new TunnelIdCaseBuilder().setTunnelId(tunnelIdBuilder.build()).build());
     }
 }
index 7caa8ea50d8b21bb89b22747da4b291fb20fbe19..0de5dcf91b939bd0944922d23150586de94bfd47 100644 (file)
@@ -11,11 +11,8 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpDstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.udp.dst._case.UdpDstBuilder;
 
@@ -25,23 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmUdpDstDeserializer extends AbstractOxmMatchEntryDeserializer {
-
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new UdpDstCaseBuilder()
-                    .setUdpDst(new UdpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return UdpDst.class;
+    public OxmUdpDstDeserializer() {
+        super(UdpDst.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new UdpDstCaseBuilder()
+            .setUdpDst(new UdpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
+            .build());
     }
 }
index 6fb526e20ac4b53e3cab59071f6ed387c7aa31ac..c40fcf8b42ba2e10d4b1f7ea8bd956150ae8b336 100644 (file)
@@ -11,11 +11,8 @@ import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint
 
 import io.netty.buffer.ByteBuf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpSrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.udp.src._case.UdpSrcBuilder;
 
@@ -25,22 +22,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmUdpSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new UdpSrcCaseBuilder()
-                    .setUdpSrc(new UdpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return UdpSrc.class;
+    public OxmUdpSrcDeserializer() {
+        super(UdpSrc.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new UdpSrcCaseBuilder()
+            .setUdpSrc(new UdpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
+            .build());
     }
 }
index 1381475721e1788dfd09f0bbc26a183814bb7063..8c218597efb4c24e2327bb87bbb515f1b60f34cf 100644 (file)
@@ -10,11 +10,8 @@ package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanPcp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanPcpCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.pcp._case.VlanPcpBuilder;
 
@@ -24,22 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
  * @author michal.polkorab
  */
 public class OxmVlanPcpDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        return processHeader(getOxmClass(), getOxmField(), input)
-                .setMatchEntryValue(new VlanPcpCaseBuilder()
-                    .setVlanPcp(new VlanPcpBuilder().setVlanPcp(readUint8(input)).build())
-                    .build())
-                .build();
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return VlanPcp.class;
+    public OxmVlanPcpDeserializer() {
+        super(VlanPcp.class);
     }
 
     @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        builder.setMatchEntryValue(new VlanPcpCaseBuilder()
+            .setVlanPcp(new VlanPcpBuilder().setVlanPcp(readUint8(input)).build())
+            .build());
     }
 }
index 6b476dcee80ff67db32c92df1a3e9ce53aa21b49..4edb99b1b4965277caf07340252b5cad269cde9d 100644 (file)
@@ -8,11 +8,7 @@
 package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanVid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanVidCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.vid._case.VlanVidBuilder;
@@ -24,33 +20,19 @@ import org.opendaylight.yangtools.yang.common.Uint16;
  * @author michal.polkorab
  */
 public class OxmVlanVidDeserializer extends AbstractOxmMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addVlanVidValue(input, builder);
-        return builder.build();
+    public OxmVlanVidDeserializer() {
+        super(VlanVid.class);
     }
 
-    private static void addVlanVidValue(final ByteBuf input, final MatchEntryBuilder builder) {
-        final VlanVidCaseBuilder caseBuilder = new VlanVidCaseBuilder();
-        VlanVidBuilder vlanBuilder = new VlanVidBuilder();
-        int vidEntryValue = input.readUnsignedShort();
-        vlanBuilder.setCfiBit((vidEntryValue & 1 << 12) != 0); // cfi is 13-th bit
-        vlanBuilder.setVlanVid(Uint16.valueOf(vidEntryValue & (1 << 12) - 1)); // value without 13-th bit
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final int vidEntryValue = input.readUnsignedShort();
+        final VlanVidBuilder vlanBuilder = new VlanVidBuilder()
+                .setCfiBit((vidEntryValue & 1 << 12) != 0) // cfi is 13-th bit
+                .setVlanVid(Uint16.valueOf(vidEntryValue & (1 << 12) - 1)); // value without 13-th bit
         if (builder.isHasMask()) {
             vlanBuilder.setMask(OxmDeserializerHelper.convertMask(input, Short.BYTES));
         }
-        caseBuilder.setVlanVid(vlanBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
-    }
-
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return VlanVid.class;
-    }
-
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        builder.setMatchEntryValue(new VlanVidCaseBuilder().setVlanVid(vlanBuilder.build()).build());
     }
 }
index 7bc71456e905510a5dbcbaa7700458e5720cc224..04e2102c124316935fe735b9d76b5166df35d53f 100644 (file)
@@ -14,19 +14,25 @@ import org.opendaylight.openflowjava.protocol.impl.deserialization.match.Abstrac
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.experimenter.id._case.ExperimenterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ExperimenterClass;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 
 /**
  * Created by Anil Vishnoi (avishnoi@Brocade.com) on 7/26/16.
  */
-public abstract class AbstractOxmExperimenterMatchEntryDeserializer extends AbstractOxmMatchEntryDeserializer {
+public abstract class AbstractOxmExperimenterMatchEntryDeserializer<F extends MatchField>
+        extends AbstractOxmMatchEntryDeserializer {
 
-    protected ExperimenterIdCaseBuilder createExperimenterIdCase(MatchEntryBuilder entryBuilder, ByteBuf input) {
-        ExperimenterIdCaseBuilder expCaseBuilder = new ExperimenterIdCaseBuilder();
-        ExperimenterBuilder expBuilder = new ExperimenterBuilder();
-        expBuilder.setExperimenter(new ExperimenterId(readUint32(input)));
-        expCaseBuilder.setExperimenter(expBuilder.build());
-        return expCaseBuilder;
+    protected AbstractOxmExperimenterMatchEntryDeserializer(final Class<? extends MatchField> oxmField) {
+        super(ExperimenterClass.class, oxmField);
     }
 
+    protected ExperimenterIdCaseBuilder createExperimenterIdCase(final MatchEntryBuilder entryBuilder,
+            final ByteBuf input) {
+        return new ExperimenterIdCaseBuilder()
+                .setExperimenter(new ExperimenterBuilder()
+                    .setExperimenter(new ExperimenterId(readUint32(input)))
+                    .build());
+    }
 }
index e4cb668e3b90a18916b12bd1a579db3822db9f9c..26e75359471ac08b3c2f83bafb4d6337cc69d387 100644 (file)
@@ -14,24 +14,21 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.approved.extension
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.approved.extensions.rev160802.TcpFlagsContainerBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.approved.extensions.rev160802.oxm.container.match.entry.value.experimenter.id._case.TcpFlagsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ExperimenterClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
 
 /**
  * Created by Anil Vishnoi (avishnoi@Brocade.com) on 7/26/16.
  */
-public class OnfOxmTcpFlagsDeserializer extends AbstractOxmExperimenterMatchEntryDeserializer {
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder(deserializeHeader(input));
-        ExperimenterIdCaseBuilder expCaseBuilder = createExperimenterIdCase(matchEntryBuilder, input);
-        addTcpFlagsAugmentation(input, expCaseBuilder, matchEntryBuilder.isHasMask());
-        matchEntryBuilder.setMatchEntryValue(expCaseBuilder.build());
-        return matchEntryBuilder.build();
+public class OnfOxmTcpFlagsDeserializer extends AbstractOxmExperimenterMatchEntryDeserializer<TcpFlags> {
+    public OnfOxmTcpFlagsDeserializer() {
+        super(TcpFlags.class);
+    }
 
+    @Override
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        ExperimenterIdCaseBuilder expCaseBuilder = createExperimenterIdCase(builder, input);
+        addTcpFlagsAugmentation(input, expCaseBuilder, builder.isHasMask());
+        builder.setMatchEntryValue(expCaseBuilder.build());
     }
 
     private static void addTcpFlagsAugmentation(final ByteBuf input, final ExperimenterIdCaseBuilder expCaseBuilder,
@@ -45,20 +42,4 @@ public class OnfOxmTcpFlagsDeserializer extends AbstractOxmExperimenterMatchEntr
         }
         expCaseBuilder.addAugmentation(new TcpFlagsContainerBuilder().setTcpFlags(flagsBuilder.build()).build());
     }
-
-    /**
-     * Return the oxm_field class.
-     */
-    @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return TcpFlags.class;
-    }
-
-    /**
-     * Return the oxm_class class.
-     */
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return ExperimenterClass.class;
-    }
 }