Refactor AbstractOxmMatchEntryDeserializer
[openflowplugin.git] / openflowjava / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / match / OxmArpTpaDeserializer.java
index da5dfee6ebd6c21389dbc7c5fd592f850579b82a..3f92e102d5f72433036271e56cb01a467af7c3c0 100644 (file)
@@ -8,50 +8,30 @@
 package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
 
 import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
 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;
 
 /**
- * @author michal.polkorab
+ * Translates OxmArpTpa messages.
  *
+ * @author michal.polkorab
  */
-public class OxmArpTpaDeserializer extends AbstractOxmMatchEntryDeserializer
-        implements OFDeserializer<MatchEntry> {
-
-    @Override
-    public MatchEntry deserialize(final ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addArpTpaValue(input, builder);
-        return builder.build();
+public class OxmArpTpaDeserializer extends AbstractOxmMatchEntryDeserializer {
+    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());
     }
 }