Refactor AbstractOxmMatchEntryDeserializer
[openflowplugin.git] / openflowjava / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / match / OxmArpTpaDeserializer.java
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());
     }
 }