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.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;
+import org.opendaylight.yangtools.yang.common.Uint32;
/**
- * @author michal.polkorab
+ * Translates OxmPbbIsid messages.
*
+ * @author michal.polkorab
*/
-public class OxmPbbIsidDeserializer extends AbstractOxmMatchEntryDeserializer
- implements OFDeserializer<MatchEntry> {
-
- @Override
- public MatchEntry deserialize(ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addPbbIsidValue(input, builder);
- return builder.build();
- }
-
- private static void addPbbIsidValue(ByteBuf input, MatchEntryBuilder builder) {
- PbbIsidCaseBuilder caseBuilder = new PbbIsidCaseBuilder();
- PbbIsidBuilder isidBuilder = new PbbIsidBuilder();
- Integer isid = input.readUnsignedMedium();
- isidBuilder.setIsid(isid.longValue());
- if (builder.isHasMask()) {
- 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;
+public class OxmPbbIsidDeserializer extends AbstractOxmMatchEntryDeserializer {
+ public OxmPbbIsidDeserializer() {
+ super(PbbIsid.VALUE);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final int isid = input.readUnsignedMedium();
+ final PbbIsidBuilder isidBuilder = new PbbIsidBuilder()
+ .setIsid(Uint32.valueOf(isid));
+ if (builder.getHasMask()) {
+ isidBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.SIZE_OF_3_BYTES));
+ }
+ builder.setMatchEntryValue(new PbbIsidCaseBuilder().setPbbIsid(isidBuilder.build()).build());
}
-}
\ No newline at end of file
+}