Bump upstreams for 2022.09 Chlorine
[openflowplugin.git] / openflowjava / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / match / OxmMetadataDeserializer.java
index 0f16de8a1d94f1d60920bcf87aea6cd7e812a6b7..f5a22e5128c764423bfad59b3198d4afcaec4f8b 100644 (file)
@@ -8,53 +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.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;
 
 /**
- * @author michal.polkorab
+ * Translates OxmMetadata messages.
  *
+ * @author michal.polkorab
  */
-public class OxmMetadataDeserializer  extends AbstractOxmMatchEntryDeserializer
-        implements OFDeserializer<MatchEntry> {
-
-    @Override
-    public MatchEntry deserialize(ByteBuf input) {
-        MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
-        addMetadataValue(input, builder);
-        return builder.build();
-    }
-
-    private static void addMetadataValue(ByteBuf input, MatchEntryBuilder builder) {
-        MetadataCaseBuilder caseBuilder = new MetadataCaseBuilder();
-        MetadataBuilder metadataBuilder = new MetadataBuilder();
-        byte[] metadataBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
-        input.readBytes(metadataBytes);
-        metadataBuilder.setMetadata(metadataBytes);
-        if (builder.isHasMask()) {
-            metadataBuilder.setMask(OxmDeserializerHelper
-                    .convertMask(input, EncodeConstants.SIZE_OF_LONG_IN_BYTES));
-        }
-        caseBuilder.setMetadata(metadataBuilder.build());
-        builder.setMatchEntryValue(caseBuilder.build());
+public class OxmMetadataDeserializer extends AbstractOxmMatchEntryDeserializer {
+    public OxmMetadataDeserializer() {
+        super(Metadata.VALUE);
     }
 
     @Override
-    protected Class<? extends MatchField> getOxmField() {
-        return Metadata.class;
-    }
+    protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+        final byte[] metadataBytes = new byte[Long.BYTES];
+        input.readBytes(metadataBytes);
 
-    @Override
-    protected Class<? extends OxmClassBase> getOxmClass() {
-        return OpenflowBasicClass.class;
+        final MetadataBuilder metadataBuilder = new MetadataBuilder().setMetadata(metadataBytes);
+        if (builder.getHasMask()) {
+            metadataBuilder.setMask(OxmDeserializerHelper.convertMask(input, Long.BYTES));
+        }
+        builder.setMatchEntryValue(new MetadataCaseBuilder().setMetadata(metadataBuilder.build()).build());
     }
 }